5.3 仿射变换:平移

 

 

 

一、仿射变换

opencv使用仿射函数实现平移、旋转等。

 

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

 

dst:输出图像。

M是一个2*3的变换矩阵。使用不同的变换矩阵,就可以实现不同的仿射变换。

dsize: 输出图像的尺寸。

flags:插值方法,默认为INTER_LINEAR。

         5.3 仿射变换:平移

borderMode: 边类型,默认为BORDER_CONSTANT

borderValue:边界值,默认为0

 

具体的变换为:

M = [[M11, M12, M13]

         [M21, M22, M23]]

 

x = M11*x + M12*y + M13

y = M21*x + M22*y + M23

 

 

二、平移变换

要实现:x = x + a , y = y + b

所以,变换矩阵为:

[[1, 0, a]

 [0, 1, b]]

 

 

代码:

5.3 仿射变换:平移

 

 

结果:

5.3 仿射变换:平移

 

 

因为图像大小不变,所以原图片下方和右方的部分就丢失了。

 

 

例2:

如果还想要看到的话,可以让输出图像的尺寸大一些。

 

5.3 仿射变换:平移

 

 

 

5.3 仿射变换:平移