opencv改变图片大小,cv2.resize方法详解

cv2.resize可以改变图片的尺寸,方法如下

def resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
    src:输入图像 dsize:变化后的尺寸 dst:输出图像 fx,fy:沿x轴,y轴方向的缩放比例 interpolation:中文意思是插值,表示使用什么算法来对图像进行改变

interpolation有几个可选项,如下

参数 说明 cv2.INTER_NEAREST 最近邻插值 cv2.INTER_LINEAR 双线性插值,默认值 cv2.INTER_CUBIC 双三次插值 cv2.INTER_AREA 使用像素面积关系重采样。图像变化时的首选方法 cv2.INTER_LANCZOS4 8x8 邻域的 Lanczos 插值 cv2.INTER_MAX 插值代码的掩码 cv2.WARP_FILL_OUTLIERS 标志,填充所有目标图像像素。如果其中一些对应于源图像中的异常值,则将它们设置为零 cv2.WARP_INVERSE_MAP 标志,逆变换

官方对于 interpolation的说明

To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR (faster but still looks OK).

翻译:要缩小图像,通常使用 INTER_AREA 插值看起来效果最好,而使用 .放大图像,通常使用 INTER_CUBIC(慢)或 INTER_LINEAR 效果最好。 (更快,但看起来还可以)。

经验分享 程序员 微信小程序 职场和发展