图像缩放,顾名思义就是对图像进行放大或缩小的改变,其本质就是改变图像的宽度和高度,可以放大宽高,也可以缩小宽高。
图像缩放算法主要有最近领域插值算法、双线性插值算法、立方插值算法和像素关系重采样算法。其中,OpenCV默认使用双线性插值算法对图像进行缩放。
import cv2 img = cv2.imread("1.png") #img1=cv2.resize(img,(300,400)) #修改图片的尺寸 img1=cv2.resize(img,(0,0),fx=0.5,fy=0.5,interpolation=cv2.INTER_NEAREST) #修改图片的尺寸 #参数1 原图片 #参数2 修改后的尺寸;300宽 400高;表示缩放后图像的大小。如果设置了这个参数,那么设置的(width,height)就代表将原图像缩放到指定的宽高;如果未设置这个参数(0,0),那么原图像缩放之后的大小就要通过公式“dsize=(round(fx*原图像的宽),round(fy*原【的高))”来计算,fx和fy表示图像宽度方向和高度方向上的缩放比例 #fx:可选参数,表示图像宽度方向上的缩放比例,默认为0,表示自动按照“(double)dsize.width/原图像的宽度”来计算。 #fy:可选参数,表示图像高度方向上的缩放比例,默认为0,表示自动按照“(double)dsize.height/原图像的高度”来计算。 #interpolation 所用的插值方法 #INTER_NEAREST 最近邻插值;INTER_LINEAR 双线性插值(默认设置);INTER_AREA 使用像素区域关系进行重采样;INTER_CUBIC 4x4像素邻域的双三次插值;INTER_LANCZOS4 8x8像素邻域的Lanczos插值 cv2.imwrite("3.jpg",img1) cv2.waitKey(0)