仿射变换

通过仿射变换模块可对图像进行剪裁缩放、镜像翻转和平移处理。

本节内容包含:

模块原理

仿射变换模块的仿射算法类型包括剪裁缩放平移镜像

剪裁缩放

剪裁缩放算法工作流程如下:

图 1 算法工作流程
  1. 进行图像剪裁。即先计算ROI内目标物体的最小外接矩形,再将外接矩内的图像裁剪出来,如下图所示。

    裁剪后图像的宽高和最小外接矩形宽高对应。若外接矩形一部分在图像外部,则需要根据预设的填充方式和填充值进行填充。具体填充方式见下文的参数配置

    图 2 像素对应示意
  2. 进行图像缩放。即缩放需要输出的目标图像尺寸,计算公式如下。

    其中CropH、CropW表示裁剪后图像的高度和宽度;DstH、DstW表示输出目标图像的高度和宽度;scale表示设置裁剪缩放的尺度;aspect表示设置的宽高比。

    图 3 图像缩放计算公式
平移

平移包括X和Y方向平移,实现原理为将像素矩阵整体向X或Y方向平移,移动区域使用0填充。

图 4 图像平移原理
镜像
包括水平镜像、垂直镜像、水平垂直镜像。
说明:

水平垂直镜像表示先水平镜像后再垂直镜像,故本文仅介绍水平镜像和垂直镜像。

水平镜像指将输入图像的像素矩阵左右翻转;垂直镜像指将像素矩阵上下翻转,翻转原理示意图如下。

图 5 镜像原理示意

使用方法

仿射变换在流程中的前序模块为图像源。执行一次流程后即可对图像源模块输入的图像进行仿射变换。

图 6 效果示例

参数配置

以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。

说明:

可配置的运行参数随仿射变换类型选择而变化,具体见如下表格。

说明:

无论选择哪种仿射变换类型,均可启用/关闭锁定输出尺寸。启用后,可设置宽高限制输出图像的尺寸。

表 1 仿射变换类型为剪裁缩放时

参数

描述

尺度

图像缩放系数

宽高比

图像宽度与高度的比值

插值方式

可选最邻近和双线性

  • 最邻近:选取最邻近的像素点进行插值计算

  • 双线性:先对X轴左右最邻近的像素点进行差值计算,然后对Y轴上下最邻近的像素点进行差值计算

填充方式

旋转矩阵超出图像边界部分的灰度值填充方式,可选常数临近复制临近复制表示使用相邻像素点的灰度值进行填充

填充值

填充方式设置为常数时,通过该参数设置具体填充的灰度值

表 2 仿射变换类型为镜像时

参数

描述

镜像方向

可选择水平垂直水平垂直

表 3 仿射变换类型为平移时

参数

描述

X移动距离

取值为正数时图像向左平移,负数时图片向右平移

Y移动距离

取值为正数时图片向上平移,负数时图片向下平移

模块结果

该模块输出结果中各项参数详情,请参见仿射变换模块的输出结果