1. 学习目标
学习图像的缩放矩阵;学习 OpenCV 图像缩放函数 cv.resize 和 cv.warpAffine。2. 图像的缩放矩阵
fx 是图像在 x 轴的缩放比例,fy 是图像在 y 轴的缩放比例,公式:缩放是物体在 x 轴和 y 轴的缩放比例。
3. 图像缩放函数
3.1 cv.warpAffine() 函数使用
cv.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) → dst
3.2 参数说明
3.3 flags 值说明
4. cv.resize() 实现图像的缩放和大小变化
4.1 cv.resize() 函数使用
cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst
4.2 参数说明
4.3 interpolation 值说明
5. cv.warpAffine 图像缩放实例
5.1 实例代码
import cv2 as cvimport numpy as np# 图像缩放def image_zoom(src, zx=1, zy=1):h,w,c = src.shapeM = np.float32([[1*zx,0,0],[0,1*zy,0]])img = cv.warpAffine(src,M,(int(w*zx),int(h*zy)))return imgif __name__ == "__main__":img = cv.imread("./images/lena.jpg")cv.imshow("origin", img)img_zoom_half = image_zoom(img, 0.5,0.5)cv.imshow("zoom0.5", img_zoom_half)img_zoom_10 = image_zoom(img, 1.1,1.1)cv.imshow("zoom1.1", img_zoom_10)cv.waitKey(0)cv.destroyAllWindows()
5.2 效果
6. cv.resize 图像缩放实例
6.1 实例代码
import cv2 as cvimport numpy as np# 图像缩放def image_resize(src):h,w,c = src.shapezoom_size = cv.resize(src,(int(w*0.5),int(h*0.5)))cv.imshow("zoom_size", zoom_size)zoom_scale = cv.resize(src,None,fx=0.5,fy=0.5)cv.imshow("zoom_scale", zoom_scale)if __name__ == "__main__":img = cv.imread("./images/lena.jpg")cv.imshow("origin", img)image_resize(img)cv.waitKey(0)cv.destroyAllWindows()