在opencv中对图片的缩放,通常用到最多的就是resize()方法
函数原型:
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
参数描述
参数 | 说明 |
---|---|
src | 【必需】原图像 |
fx | 【可选】沿水平轴的比例因子 |
fy | 【可选】沿垂直轴的比例因子 |
interpolation | 【可选】插值方式 |
插值方式可以理解为图片放大或缩小后,改变区域的补偿方式
插值方式有多种,如下:
- cv2.INTER_NEAREST 最近邻插值
- cv2.INTER_LINEAR 双线性插值
- cv2.INTER_CUBIC 双线性插值
- cv2.INTER_AREA 使用像素区域关系重新采样。它可能是图像抽取的首选方法,因为它可以提供无莫尔条纹的结果。但是当图像被缩放时,它类似于INTER_NEAREST方法。
通常的,缩小使用cv2.INTER_AREA,放大使用cv2.INTER_CUBIC(较慢)和cv2.INTER_LINEAR(较快效果也不错)。
默认情况下,所有的放缩都使用cv2.INTER_LINEAR。
示例如下
# -*- coding: utf-8 -*-
import cv2
#加载图片1
img1 = cv2.imread("./nba.png")#原尺寸566*362
#显示图片1
cv2.imshow("img1",img1)
#修改图片1尺寸为600*600 得到图片2
img2=cv2.resize(img1,(600,600),interpolation=cv2.INTER_NEAREST)
#显示 图片2
cv2.imshow("img2",img2)
#按任意键退出程序
cv2.waitKey(0)
#释放窗口占用的内存资源
cv2.destroyAllWindows()