目录
扩展缩放
平移
旋转
扩展缩放
import cv2img = cv2.imread("../data/image/6.png")#设置缩放因子res = cv2.resize(img,None,fx = 2,fy = 2,interpolation = cv2.INTER_CUBIC)#获取图像的宽度和长度height,width=img.shape[:2]#直接指定缩放大小res1=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)print(f"原图的大小:{img.shape}")print(f"res的大小:{res.shape}")print(f"res1的大小:{res1.shape}")#原图的大小:(446, 364, 3)#res的大小:(892, 728, 3)#res1的大小:(892, 728, 3)
cv2.resize()函数,扩展缩放图片大小。
第一个参数表示输入图片。
第二个参数表示指定放大缩小后的图片大小。
第三个参数表示X轴缩放因子,即图片缩放后的长度/图片原本的长度。
第四个参数表示Y轴缩放因子,即图片缩放后的高度/图片原本的高度。
第四个参数表示插值方法。
opencv提供五种插值方法,INTER_NEAREST、 INTER_LINEAR、INTER_AREA、INTER_CUBIC,和INTER_LANCZOS4,暂且不能理解这五种方法是什么意思,以后明白了在来补充。
平移
cv2.warpAffine()函数:平移图像。
第一参数表示输入图像。
第二个参数表示变换矩阵,例如,M= [[1,0,100],[0,1,5]]表示图像纵向移动100个像素,横向移动5个像素。
第三个参数表示输出图像的大小。
import cv2import numpy as npimg = cv2.imread("../data/image/6.png")# 获取图像的宽度和长度height,width=img.shape[:2]M = np.float32([[1,0,100],[0,1,5]])res = cv2.warpAffine(img,M,(width,height))cv2.imshow("img",img)cv2.imshow("res",res)cv2.waitKey()
旋转
cv2.getRotationMatrix2D()函数:旋转图片
第一个参数表示旋转中心点。
第二个参数表示旋转角度。
第三个参数表示旋转后的缩放因子。
可以通过设置旋转中心,缩放因子以及窗口大小来防止旋转后超出边界的问题。
import cv2import numpy as npimg = cv2.imread("../data/image/6.png")# 获取图像的宽度和长度height,width=img.shape[:2]M = cv2.getRotationMatrix2D(((width-1)/2.0,(height-1)/2.0),90,1)res = cv2.warpAffine(img,M,(width,height))cv2.imshow("img",img)cv2.imshow("res",res)cv2.waitKey()