目录
1、导入外部函数依赖包
import cv2
import numpy as np
import matplotlib.pyplot as plt
2、读取图像
img=cv2.imread('your image')#输入要读取的图片路径
3、图像变换
3.1平移变换
平移变换可以利用cv2.wartAffine函数来实现,该函数有三个参数,第一个 参数为待变换的图像,第二个参数为一个2*3的变换矩阵,第3个参数为变换 后的图像大小。
#平移
m1=np.float32([[1,0,200],[0,1,200]])
img1=cv2.warpAffine(img,m1,(img.shape[1],img.shape[0]))
3.2旋转变换
旋转变换可以利用cv2.getRotationMatrix2D 和 cv2.wartAffine 函数来共同实 现,其中第一个函数的作用是生成旋转矩阵M,第二个函数的作用是利用旋转矩 阵M对图像进行变换。cv2.getRotationMatrix2D函数共有3个参数,第一个参数 为图像旋转中心坐标,第二个参数为旋转角度,第三个参数为图像缩放比例。
#旋转
m2=cv2.getRotationMatrix2D((img.shape[1]/2,img.shape[0]/2),45,1)
img2=cv2.warpAffine(img,m2,(img.shape[1],img.shape[0]))
3.3缩放变换
图像缩放变换可以利用cv2.resize函数来实现,该函数一共包含6个参数, 第一个参数为待变换的图像,第二个参数为修改后的图像尺寸,第三个参数为输 出图像,第四个参数和第五个参数分别为在x方向和y方向的缩放系数,第六个 参数为插值方式。需要注意的是,如果指定了第二个参数即输出图像的尺寸,那 么第四个和第五个参数的缩放系数无效;反之,如果未指定输出图像的尺寸,那 么图像将按照第四个和第五个参数的缩放系数进行缩放变换。 这里需要注意,图像显示建议使用cv2.imshow函数来显示,使用subplot无 法显示缩放前后的图像大小对比。
#缩放
img3=cv2.resize(img,[480,360],interpolation=cv2.INTER_NEAREST)
cv2.imshow('Image',img)
cv2.waitKey()
cv2.imshow('Image',img3)
cv2.waitKey()
3.4镜像变换
镜像翻转可以利用cv2.flip函数来实现,该函数主要有两个参数,第一个参 数为需要变换的图像,第二个参数为翻转的类型,通过指定第二个参数为1/0/-1 来是实现水平/垂直/水平垂直翻转。
img4=cv2.flip(imgrgb,1)
4、显示对比图像
plt.subplot(1,2,1)
plt.imshow(img)
plt.title('original')
plt.subplot(1,2,2)
plt.imshow(img_after)
plt.title('after')
plt.show()