将图像位置朝特定方向移动称为图像平移。要执行图像平移,我们首先应该了解什么是平移矩阵以及如何利用OpenCV和NumPy定义它。
如果我们想要在 (x,y) 方向偏移,偏移量分别为 (tx,ty)。其中,tx 是水平方向的偏移量,ty 是垂直方向的偏移量。使用 (tx,ty),我们可以将平移矩阵 M 定义为下面的形式 −
M = np.float32([[1,0,tx],[0,1,ty]])
平移矩阵 M 是类型为 np.float32 的 numpy 数组。我们将 M 传递给 cv2.warpAffine() 函数作为一个参数。请看以下语法 −
语法
cv2.warpAffine(img,M,(w,h))
在这里,
- img − 要移动的图像。
-
M − 上述定义的平移矩阵。
-
(w, h) − 平移后图像的宽度和高度。
注意 − tx 的正值会使图像向右移,而负值会使图像向左移。同样地, ty 的 正值将使图像向下移动,而 负值将使图像向上移动。
步骤
要执行图像平移,可以按照下面的步骤进行−