当前位置: 首页 > news >正文

云南个旧建设局网站电子商务网站建设与维护期末答案

云南个旧建设局网站,电子商务网站建设与维护期末答案,一般纳税人企业所得税怎么征收,试客类网站开发目录 图像的缩放 图像的平移 图像的旋转 图像的裁剪 图像的翻转 图像的缩放 OpenCV中使用cv2.resize()函数进行缩放,格式为: resize_imagecv2.resize(image,(new_w,new_h),插值选项) 其中image代表的是需要缩放的对象,(new_w,new_h)表…

目录

图像的缩放

图像的平移

图像的旋转

图像的裁剪

图像的翻转


图像的缩放

OpenCV中使用cv2.resize()函数进行缩放,格式为:

resize_image=cv2.resize(image,(new_w,new_h),插值选项)

其中image代表的是需要缩放的对象,(new_w,new_h)表示的是缩放后的图片的大小为多少,插值选项可选择。

在OpenCV缩放的插值选项以及各自的特点有:

  • cv2.INTER_NEAREST:最近邻插值,速度最快,但质量最差。
  • cv2.INTER_LINEAR:双线性插值,速度较快,质量较好。
  • cv2.INTER_CUBIC:双三次插值,速度较慢,质量最好。
  • cv2.INTER_AREA:区域插值,适用于图像缩小。
  • cv2.INTER_LANCZOS4:Lanczos插值,速度较慢,质量最好。
  • cv2.INTER_LINEAR_EXACT:精确的双线性插值,速度较慢,质量最好。
  • cv2.INTER_MAX:最大的插值方法编号。
  • cv2.WARP_FILL_OUTLIERS:在变换过程中填充异常值。
  • cv2.WARP_INVERSE_MAP:使用逆映射进行变换。

下面举个例子: 

import cv2
import matplotlib.pyplot as plt
import numpy as npimg=cv2.imread(r'D:\Photo\1.jpeg')
img1=cv2.resize(img,(400,300),cv2.INTER_NEAREST)
img2=cv2.resize(img,(400,300),cv2.INTER_LINEAR)
img3=cv2.resize(img,(400,300),cv2.INTER_CUBIC)
img4=cv2.resize(img,(400,300),cv2.INTER_AREA)
img5=cv2.resize(img,(400,300),cv2.INTER_LANCZOS4)
img6=cv2.resize(img,(400,300),cv2.INTER_LINEAR_EXACT)
img7=cv2.resize(img,(400,300),cv2.INTER_MAX)
img8=cv2.resize(img,(400,300),cv2.WARP_FILL_OUTLIERS)
img9=cv2.resize(img,(400,300),cv2.WARP_INVERSE_MAP)titles=['Original Image','INTER_NEAREST','INTER_LINEAR','INTER_CUBIC','INTER_AREA','INTER_LANCZOS4','INTER_LINEAR_EXACT','INTER_MAX','WARP_FILL_OUTLIERS','WARP_INVERSE_MAP']
img=[img,img1,img2,img3,img4,img5,img6,img7,img8,img9]
for i in range(9):plt.subplot(3,3,i+1)plt.imshow(img[i])plt.title(titles[i])plt.xticks([]),plt.yticks([])
plt.show()

运行结果如下所示:

可以看到,当采用不同的插值选项的时候,有时并不明显,而有时会有细微差别。

图像的平移

图像的平移就是向任意一个方向移动一定的像素,由于图像本质上是一个矩阵,对图像的移动其实就是对矩阵的移动,在OpenCV中使用np.float()函数对图像进行平移。

比如下面这个例子:

import cv2
import matplotlib.pyplot as plt
import numpy as npimage=cv2.imread(r'D:\Photo\1.jpeg')
(h,w)=image.shape[:2]
M =np.float32([[1,0,50],[0,1,25]])
shifted_image=cv2.warpAffine(image,M,(w,h))
cv2.imshow('shifed_image',shifted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,np.float32([[1,0,50],[0,1,25]])表示向[1,0]方向移动50像素,向[0,1]方向移动25像素,运行结果如下所示:

图像的旋转

图像的旋转即以某一点为圆心,按顺/逆时针旋转多少角度。在OpenCV中使用cv2.getRotationMatrix2D()来对与图像进行选举案。我们知道,图像的本质就是矩阵,对于图像进行旋转的过程中本质就是对于矩阵进行旋转,cv2.getRotationMatrix2D()一共有三个参数,其中第一个是旋转所固定的点,第二个是旋转的角度,第三个是图片缩放的尺度。完成之后,需要对于图片进行仿射变换,使用warpAffine()来完成。例如:

import cv2
img=cv2.imread(r'D:\Photo\1.jpeg')
w,h=img.shape[:2]
center=(w//2,h//2)
rotation_matrix=cv2.getRotationMatrix2D(center,90,1.0)
rotation_image=cv2.warpAffine(img,rotation_matrix,(w,h))
type(rotation_image)
cv2.imshow('rotation_image',rotation_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

注:

cv2.warpAffine()在OpenCV中是对于图像进行仿射变化,需要输入两个参数,分别是原始图像和变换矩阵。仿射变换用于图像的平移、旋转、缩放等。

运行结果如下所示:

可以看到在运行出来的图像中,图像比原图逆时针旋转了90°。

如果将旋转的角度定为45°时,即代码为:

rotation_matrix=cv2.getRotationMatrix2D(center,45,1.0)

运行结果如下所示:

可以看到,在旋转之后的图片中,因为展示图片的大小以及角度原因,可以看到四个棱角的地方无法展示,而多余的部分使用黑色来填充。

图像的裁剪

我们知道,图像的本质就是一个矩阵,现在我们想对图像进行裁剪,即为截取矩阵的部分内容,即为new_image=image[x1:x2,y1:y2],其中x1、x2、y1、y2为指定的横坐标和纵坐标。

例如:

import cv2
import matplotlib.pyplot as plt
import numpy as np#读取图片内容
def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()img=cv2.imread(r'D:\Photo\1.jpeg')
img1=img[0:300,200:400]
#截取原图像0-300行和200-400列
cv_show('image',img1)

运行效果如下所示:

可以看到,OpenCV截取指定部分的内容。

图像的翻转

图像的翻转可以分为水平方向的翻转和垂直方向的翻转,OpenCV中使用cv2.flip(),其中第一个参数是需要翻转的图片,第二个参数是如何翻转,若第二个参数为1,则表示水平翻转;若第二个参数为0,表示水平翻转,若第二个参数为-1,则表示水平加垂直翻转。

例如:

import cv2
import matplotlib.pyplot as plt
import numpy as mpimage=cv2.imread(r'D:\Photo\1.jpeg')
flipped_image1=cv2.flip(img,1)
flipped_image2=cv2.flip(img,0)
flipped_image3=cv2.flip(img,-1)
images=[image,flipped_image1,flipped_image2,flipped_image3]for i in range(4):plt.subplot(2,2,i+1)plt.imshow(images[i])plt.xticks([]),plt.yticks([])
plt.show()

运行结果如下所示:

 可以看到上面四张图分别是原图、水平翻转、垂直翻转、水平垂直翻转,水平垂直翻转。

http://www.yayakq.cn/news/177229/

相关文章:

  • 邯郸网站建设服务报价子域名绑定wordpress子目录
  • 模拟网站效果成立公司的可行性报告
  • 网站系统建设预算wordpress会员制订阅
  • 网站建设的安全应该注意什么网站调用视频
  • 松山湖仿做网站唐山如何做百度的网站建设
  • 网站开发是什么意思啊手机做网站的软件
  • 个人网站做淘宝客违规西安公司章程在哪里下载
  • 有没有专门做素食的美食网站电子商务网站建设实验指导
  • html企业整站模板网站宁波seo全网营销
  • 做pos机网站有必要么天眼在线查企业查询
  • 网站开发设计思路wordpress主题演示数据库
  • wordpress伪静态和静态大连关键词优化服务
  • 石岩附近网站建设公司广告制作宣传
  • ps网站建设目标深圳定制巴士怎么买票
  • 南联网站建设公司男孩子和男孩子在一起怎么做网站
  • 做程序网站需要什么代码wordpress添加description和keywords方法
  • 装饰公司起名字寓意好的字绍兴百度seo排名
  • phpstudy建设网站视频教程专业网站设计制作费用
  • 如何做外卖网站app可以用来做简单的网络验证的网站
  • php制作网站开发大连企业推广公司
  • 昆明优秀网站华阴市住房和城乡建设局网站
  • 中山 在门户网站推广索莱宝做网站
  • 织梦网站后台如何做百度优化建物流网站
  • 中国建设教育协会网站培训中心怎样制作网站的步骤
  • 石家庄网站推广优化影视公司联系方式
  • 如何做好网站设计网站建设找好景科技
  • 建设网站的价格是多少怎样做网站镜像
  • 青岛市建设监理网站建设企业高端网站
  • 陕西省建设工程造价管理协会网站进入百度官网
  • 个人网站 名字文化传播集团网站建设