图像平移需要用到仿射函数 cv2.warpAffine(). 平移可以理解成图像在一个矩阵的作用下位置发生了变动。
矩阵如下图所示。
需要注意的是这里的数据类型是np.float(32)。
import cv2
import numpy as np
img = cv2.imread('35.jpg')
tx = 30 #沿x方向平移的距离
ty = 30 #沿y方向平移的距离
#平移矩阵
affine_arr = np.float32([[1,0,tx],[0,1,ty]])
#cv2.warpAffine()参数注解:
#img:图像名称
#affine_arr:平移矩阵
#(img.shape[0],img.shape[1]):图像的大小;其中 img.shape[0]:宽,对应列数 ;img.shape[1]:高,对应行数:
res = cv2.warpAffine(img,affine_arr,(img.shape[0],img.shape[1]))
cv2.imshow('img',img)#原图
cv2.imshow('res',res)#平移后的新图
cv2.waitKey(0)
cv2.destroyAllWindows()#关闭窗口
效果图如下所示.