调整图片大小、不变形

通常对于指定大小的图片, 有两种调整方法, 一种是直接暴力调整,是根据指定的高和宽进行缩放调整,另一种是根据指定的高、宽进行padding。

上面这一张图片,高明显要大于宽(高480, 宽320),如何调整为 高宽都是320 像素呢?我们可以利用 opencv resize实现图片的缩放。


  1. 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


另外,我们还可以扩展出其他几种方法: