cv2 图像移动
时间: 2023-07-15 14:15:09 浏览: 32
在使用 OpenCV 的 `cv2` 库进行图像处理时,可以使用 `cv2.warpAffine()` 函数对图像进行平移操作。
平移操作的本质是对图像的所有像素坐标进行加减操作,例如将图像沿着 x 轴方向平移 `dx` 个像素点,沿着 y 轴方向平移 `dy` 个像素点,则新的像素坐标 `(x', y')` 可以表示为:
```
x' = x + dx
y' = y + dy
```
因此,可以使用 `cv2.getAffineTransform()` 函数生成平移矩阵,然后将其传入 `cv2.warpAffine()` 函数中实现图像平移。具体代码如下:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
rows, cols = img.shape[:2]
# 定义平移矩阵
dx, dy = 50, 50
M = np.float32([[1, 0, dx], [0, 1, dy]])
# 对图像进行平移操作
img_translated = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow('Original Image', img)
cv2.imshow('Translated Image', img_translated)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,通过 `cv2.imread()` 函数读取一张图片,然后获取其行数和列数,接着定义平移矩阵 `M`,最后调用 `cv2.warpAffine()` 函数对图像进行平移操作,并通过 `cv2.imshow()` 函数显示原始图像和平移后的图像。