调整图片大小、不变形
通常对于指定大小的图片, 有两种调整方法, 一种是直接暴力调整,是根据指定的高和宽进行缩放调整,另一种是根据指定的高、宽进行padding。
上面这一张图片,高明显要大于宽(高480, 宽320),如何调整为 高宽都是320 像素呢?我们可以利用 opencv resize实现图片的缩放。
- resize用法:
首先我们需要了解 opencv resize的用法:
dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
resize 参数:
参数 | 类型 | 是否必须指定 | 具体含义 |
src | numpy.ndarray | 是 | 原图像 |
dsize | tuple | 是 | 缩放后的图像大小 |
dst | 无所谓 | 否 | 目标图像,但是在 Python 里面没有任何意义。一般不传参或者设成 |
fx, fy | 数值类型 | 否 | x 和 y 方向上的缩放比例 |
interpolation | int | 否 | 插值方式表示代码,本质是一个 int 数值,一般用 OpenCV 内置的参数代号以提高可读性。默认:双线性插值 |
2.具体方法:
方法1: 直接resize:
方法1 结果: 直接把320 * 480 的图片调整为 320 * 320 的图片会变形。
方法2: padding: 具体原理方法,请参考 paperClub, 网站: http://www.infersite.com
另外,我们还可以扩展出其他几种方法: