1. 缩放
dst = cv2.resize( src, dsize[, fx[, fy[, interpolation]]] )

dst 代表输出的目标图像,该图像的类型与src 相同,其大小为dsize(当该值非零时),或者可以通过src.size()、fx、fy 计算得到。
src 代表需要缩放的原始图像。
dsize 代表输出图像大小。
fx 代表水平方向的缩放比例。
code 是色彩空间转换码。
fy 代表垂直方向的缩放比例。
interpolation 代表插值方式,具体如表所示。
在这里插入图片描述

在 cv2.resize()函数中,目标图像的大小可以通过“参数dsize”或者“参数fx和fy”二者之一来指定,具体介绍如下。

情况 1:通过参数dsize指定
如果指定参数dsize的值,则无论是否指定了参数fx和fy的值,都由参数dsize来决定目标图像的大小。此时需要注意的是,dsize内第1个参数对应缩放后图像的列数(width,即cols),第2个参数对应缩放后图像的行数(height,即行数rows)。

情况 2:通过参数fx和fy指定
如果参数dsize的值是None,那么目标图像的大小通过参数fx(控制列数)和fy(控制行数)来决定。此时,目标图像的大小为:

dsize=Size(round(fx·src.cols),round(fy·src.rows))

当缩小图像时,使用区域插值方式(INTER_AREA)能够得到最好的效果;当放大图像时,使用三次样条插值(INTER_CUBIC)方式和双线性插值(INTER_LINEAR)方式都能够取得较好的效果。三次样条插值方式速度较慢,双线性插值方式速度相对较快且效果并不逊色。

2. 翻转

dst = cv2.flip( src, flipCode )

  • dst 代表和原始图像具有同样大小、类型的目标图像。
  • src 代表要处理的原始图像。
  • flipCode 代表旋转类型。该参数的意义如表所示。

在这里插入图片描述

3. 仿射

仿射变换是指图像可以通过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性和平行性。平直性是指图像经过仿射变换后,直线仍然是直线;平行性是指图像在完成仿射变换后,平行线仍然是平行线。
在这里插入图片描述

dst = cv2.warpAffine( src, M, dsize[, flags[, borderMode[, borderValue]]] )

dst 代表仿射后的输出图像,该图像的类型和原始图像的类型相同。
src 代表要仿射的原始图像。
M 代表一个2×3 的变换矩阵。使用不同的变换矩阵,就可以实现不同的仿射变换。
dsize 代表输出图像的尺寸大小。
flags 代表插值方法,默认为INTER_LINEAR。当该值为WARP_INVERSE_MAP 时,意味着M是逆变换类型,实现从目标图像dst到原始图像src的逆变换。
borderMode 代表边类型,默认为BORDER_CONSTANT。当该值为BORDER_TRANSPARENT时,意味着目标图像内的值不做改变,这些值对应原始图像内的异常值。
borderValue 代表边界值,默认是0。
其通过转换矩阵M 将原始图像src 转换为目标图像dst:
dst (x, y) = src(