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 效果最好。 (更快,但看起来还可以)。