Opencv

您所在的位置:网站首页 log函数大小图像 Opencv

Opencv

2024-07-15 03:58| 来源: 网络整理| 查看: 265

如何改变图像大小

 在Opencv-python中,通过调用cv2.resize()通过插值的方式来改变图像的尺寸,关于该函数的具体介绍,已经有非常多的博客进行了剖析,这里推荐一个Opencv的Resize函数解析。

cv2.resize()的要点与坑 cv2.resize()的形参要点

 在cv2.resize()函数中,主要用到的形参包括

输入Mat数据,dsize:代表期望的输出图像大小尺寸fx:代表水平方向上(图像宽度)的缩放系数,fy:代表竖直方向上(图像高度)的缩放系数,另外,如果dsize被设置为0(None),则按fx与fy与原始图像大小相乘得到输出图像尺寸大小。interpolation:插值方式,默认选择线性插值,越复杂的插值方式带来的改变和差异越大。具体的参数选择与计算可参考Opencv的Resize函数解析 cv2.resize()的坑

 在cv2.resize()函数中,比较坑的在于dsize形参,比如想将一张128*256大小的图像放大到256*512大小,最好的办法是通过设置dsize为None,然后通过fx和fy来处理:

data = cv2.resize(data,dsize=None,fx=2,fy=2,interpolation=cv2.INTER_LINEAR)

 再不济,也可以采用在dsize中设置倍数来处理:

data = cv2.resize(data,dsize=(2*height,2*width),fx=1,fy=1,interpolation=cv2.INTER_LINEAR)

 但是,如果直接在dsize形参中写(256,512),则得到的其实是(512,256)的结果:

data = cv2.resize(data,dsize=(256,512),fx=1,fy=1,interpolation=cv2.INTER_LINEAR)

即:dsize形参的数组的宽度在前,高度在后(output_width,output_height),所以当形参为(256,512)时,实际上得到的其实是512*256的图像,而并非我们期望的256*512图像。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3