Opencv |
您所在的位置:网站首页 › log函数大小图像 › Opencv |
如何改变图像大小
在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 |