文章目录
- 自定义图片大小
- 第一种
- 第二种
- 总结
自定义图片大小
第一种
我们可以先创建一个窗口调整大小,然后把图片放进去,就是上篇文章那个例子
也可以设置图片的大小,通过resize()这个函数
cv2.resize时,参数输入是 宽×高×通道 可参考opencv: cv2.resize 探究(源码)
cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)
scr:原图
dsize:输出图像尺寸
fx:沿水平轴的比例因子
fy:沿垂直轴的比例因子
interpolation:插值方法
interpolation 选项 所用的插值方法
INTER_NEAREST 最近邻插值
INTER_LINEAR 双线性插值(默认设置)
INTER_AREA 使用像素区域关系进行重采样。 它可能是图像抽取的首选方法,因为它会产生无云纹理的结果。 但是当图像缩放时,它类似于INTER_NEAREST方法。
INTER_CUBIC 4x4像素邻域的双三次插值
INTER_LANCZOS4 8x8像素邻域的Lanczos插值
示例:
import cv2
path="./img_1.png"
img=cv2.imread(path)
img1=cv2.resize(img,(250,250),interpolation=cv2.INTER_NEAREST)#设置图片大小为250*250,可自定义,也可按照比例缩放,前提的需要知道照片的宽和高
cv2.imshow("img_1",img1)
cv2.waitKey(0)
效果图:
第二种
按照比例进行缩放
import cv2
path="./img_1.png"
img=cv2.imread(path)
height,width = img.shape[:2] #获取原图像的水平方向尺寸和垂直方向尺寸。
img1=cv2.resize(img,(int(width/2),int(height/2)),interpolation=cv2.INTER_NEAREST)#这里设置的是,宽和高都减少一倍,即缩放1/2,这里做了一个强制转换,因为/2之后,可能为浮点型,设置大小是必须为整数型
cv2.imshow("img_2",img1)
cv2.imshow("img_1",img)
cv2.waitKey(0)
效果图:
总结
通过resize(),我们可以改变图片的大小,这个函数为我们提供了五种改变大小的算法,通过设置interpolation的值来使用相应的算法,至于算法是如何实现的我们可以参考最邻近插值法、双线性插值法、双三次插值、Lanczos插值
更多推荐
图片缩放
发布评论