成都网站建设详细内容,这么做输入文字的网站,久久建筑网 百度网盘,规划电子商务网站流程图像的几何变换
学习目标
掌握图像的缩放、平移、旋转等了解数字图像的仿射变换和透射变换
1 图像的缩放
缩放是对图像的大小进行调整#xff0c;即 使图像放大或缩小 cv2.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR) 参数#xff1a;
src :输入图像dsize…图像的几何变换
学习目标
掌握图像的缩放、平移、旋转等了解数字图像的仿射变换和透射变换
1 图像的缩放
缩放是对图像的大小进行调整即 使图像放大或缩小 cv2.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR) 参数
src :输入图像dsize ;绝对尺寸 直接指定调整后图像的大小fxfy 相对尺寸将dsize设置为None然后将fx和fy设置为比例因子即可interpolation 插值方法
代码实现
import cv2 as cv
#读取图片img1 cv.imread(lena.png)#图像的缩放#法1 绝对尺寸rows, cols img1.shape[:2]
res cv.resize(img1 , (2*cols,2*rows),interpolationcv.INTER_CUBIC)#法二 相对尺寸
res1 cv.resize(img1,None,fx0.5,fy0.5)#图像显示
cv.imshow(original,img1)
cv.imshow(enlarge,res)
cv.imshow(shrink,res1)
cv.waitKey(0)结果展示 2图像的平移 代码实现
import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltfrom pylab import mpl
mpl.rcParams[font.sans-serif] [SimHei]#读取图像
img1 cv.imread(lena.png)#图像的平移
rows ,cols img1.shape[:2]
M np.float32([[1,0,100],[0,1,50]]) #平移矩阵
dst cv.warpAffine(img1,M,(cols,rows))#图像的显示
fig,axes plt.subplots(nrows1,ncols2,figsize(7,4),dpi100)
axes[0].imshow(img1[:,:,::-1])
axes[0].set_title(原图)axes[1].imshow(dst[:,:,::-1])
axes[1].set_title(平移后的结果)
plt.show()结果展示 3 图像的旋转 代码实现
import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltfrom pylab import mpl
mpl.rcParams[font.sans-serif] [SimHei]#读取图像
img cv.imread(lena.png)#旋转图像rows ,cols img.shape[:2]
#生成旋转矩阵
M cv.getRotationMatrix2D((cols/2 ,rows/2),90,1)
#进行旋转变换
dst cv.warpAffine(img,M,(cols,rows))#图像展示
fig ,axes plt.subplots(nrows1,ncols2,figsize(5,4),dpi100)
axes[0].imshow(img[:,:,::-1])
axes[0].set_title(原图)axes[1].imshow(dst[:,:,::-1])
axes[1].set_title(旋转后的结果)plt.show() M cv.getRotationMatrix2D((cols/2 ,rows/2),90,1) cols/2 ,rows/2 旋转中心90 逆时针旋转角度1缩放比例不进行缩放
结果展示