04-图像几何变换
图像缩放
通过cv2.resize(src,dsize,fx,fy,interpolation)调整输入图像的大小
其中src是输入图像,dsize是输出图片尺寸,fx和fy是沿x轴,y轴的缩放系数,interpolation是插入方式
(dsize和fx,fy设置一个就可以)
以下常用的几种interpolation插入方式:
INTER_NEAREST:最近邻插值
INTER_LINEAR:双线性插值(默认设置)
INTER_AREA:使用像素区域关系进行重采样
INTER_CUBIC:4x4像素邻域的双三次插值
INTER_LANCZOS4:8x8像素邻域的Lanczos插值
import cv2 src = cv2.imread(r"image\lenacolor.png") # 使用dsize进行图像缩放,输出图片的尺寸为列缩小一半,行不变 rows,cols = src.shape[:2] print(rows,cols) size = (round(cols*0.5),round(rows*1)) resize_1 = cv2.resize(src,size) print(resize_1.shape) # 使用fx,fy进行图像缩放 resize_2 = cv2.resize(src,None,fx=2,fy=2) cv2.imshow("src",src) cv2.imshow("dsize",resize_1) cv2.imshow("fx,fy",resize_2) cv2.waitKey(0) cv2.destroyAllWindows()
图像翻转
通过cv2.flip(src,flipcode)对图像进行翻转
其中src是输入图像,flipcode是翻转方式
以下常用的几种翻转方式:
1:水平翻转 0:垂直翻转 -1:水平垂直翻转
import cv2 src = cv2.imread(r"image\lenacolor.png") # 水平翻转 result1 = cv2.flip(src,1) # 垂直翻转 result2 = cv2.flip(src,0) # 水平垂直翻转 result3 = cv2.flip(src,-1) cv2.imshow("src",src) cv2.imshow("result1",result1) cv2.imshow("result2",result2) cv2.imshow("result3",result3) cv2.waitKey(0) cv2.destroyAllWindows()