1.理论基础
图像平移是将图像中所有的点都按照指定的平移量水平、垂直移动。
图像的平移变换用齐次坐标表示为:
(4-10)
当想将原始图像向右下移动120个像素时,可以用转换矩阵 M 表示为:
由此可以计算出 M 矩阵:
在已知变换矩阵 M 的条件下,可以直接使用OpenCV中为仿射变换函数cv2.warpAffine()完成图像的平移操作。
2.函数说明
(1)retval=np.float32()用于创建单精度浮点型数组。
(2)OpenCV中提供的仿射函数为cv2.warpAffine(),可以利用变换矩阵 M 对图像进行仿射变换。其中, M 具体可为:
对于仿射变换后的图像 R ,可以由变换矩阵 M 与原始图像矩阵相乘得到。
仿射变换函数cv2.warpAffine()的一般格式为:
retval:仿射后的输出图像,类型与原始图像相同;
src:表示要仿射的原始图像;
M:表示变换矩阵;
dsize:表示输出图像尺寸的大小,输入顺序(宽,高);
flags:表示插入值,默认INTER_LIEAR,其中还有INTER_NEAREST、INTER_AREA、INTER_CUBIC、INTER_LANCZOS4;
borderMode:表示边类型;
borderValue:表示边界值。
3.编程代码
4.效果展示
图像的平移效果如图4-1所示,左侧为原始图像,右侧为平移后的图像。
图4-1 图像的平移效果图