基本概念

图像的平移操作是将图像的所有像素坐标进行水平或者垂直方向的移动,也就是所有像素点按照给定的偏移量在水平方向上沿X轴,垂直方向上沿y轴移动。

设原始图像像素点为(x0,y0),平移后的图像的像素点为(x,y),x方向平移的距离为∆x, y方向平移的距离为∆y,则有:

平移之前构造一个移动矩阵,即指出图像在X轴方向上移动的距离,在y轴上移动的距离,平移变换的如图所示:

OpenCV中实现图像平移的方法

函数:cv2.warpAffine()

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

参数说明:

src:输入图像

M:移动矩阵(2*3),对于(x,y)处的像素点,要移动到(x+∆x, y+∆y)时,M矩阵设置为:

dsize:输出图像的大小。

borderMode:边界像素模式(int 类型)

borderValue:边界填充值; 默认情况下,它为0

flages:表示插值方式,默认为 flags=cv2.INTER_LINEAR,表示线性插值,cv2.INTER_NEAREST为最近邻插值,cv2.INTER_AREA为区域插值,cv2.INTER_CUBIC为三次样条插值,cv2.INTER_LANCAOS4为Lanczos插值

应用案例

利用OpenCV实现图像平移