cv2.warpAffine使用样例
时间: 2024-02-06 12:03:03 浏览: 18
下面是一个使用 `cv2.warpAffine` 进行仿射变换的简单样例:
```python
import cv2
import numpy as np
img = cv2.imread('example.jpg') # 读取图片
rows, cols, ch = img.shape # 获取图片的行数、列数、通道数
# 定义仿射矩阵
M = np.float32([[1, 0, 100], [0, 1, 50]])
# 进行仿射变换
dst = cv2.warpAffine(img, M, (cols, rows))
# 显示原始图片和变换后的图片
cv2.imshow('Original', img)
cv2.imshow('Affine Transformation', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,首先使用 `cv2.imread` 函数读取一张图片。然后定义一个仿射矩阵 `M`,其中第一行表示水平变换量,第二行表示垂直变换量。在本例中,我们将图片向右平移 `100` 个像素,向下平移 `50` 个像素。接着,使用 `cv2.warpAffine` 函数进行仿射变换,并将结果保存在变量 `dst` 中。最后,使用 `cv2.imshow` 函数显示原始图片和变换后的图片。
需要注意的是,`cv2.warpAffine` 函数需要指定变换矩阵、原始图片的行数和列数。在本例中,我们使用 `img.shape` 获取了原始图片的行数、列数和通道数,并将前两个值传递给了 `cv2.warpAffine` 函数。