cv2.warpaffine()参数详解
时间: 2024-02-06 09:03:03 浏览: 153
cv2.warpAffine()是OpenCV中的一个函数,用于对图像进行仿射变换。它可以将图像从一个坐标系映射到另一个坐标系,如旋转、平移和缩放。
该函数的参数如下:
* src:输入图像。
* M:仿射变换矩阵,由cv2.getRotationMatrix2D()生成。
* dsize:输出图像的尺寸。
* flags:插值方法的标志。可以是cv2.INTER_LINEAR、cv2.INTER_NEAREST、cv2.INTER_CUBIC或cv2.INTER_AREA。
* borderMode:用于填充边界的像素值。可以是cv2.BORDER_CONSTANT、cv2.BORDER_REPLICATE、cv2.BORDER_REFLECT或cv2.BORDER_WRAP。
* borderValue:当borderMode=cv2.BORDER_CONSTANT时,用于填充边界的像素值。
其中,M是一个2x3的仿射矩阵,包含了旋转、平移和缩放等变换的信息。dsize是输出图像的大小,可以根据需要设置。flags和borderMode是用来指定插值方法和边界填充方法的,根据具体需求选择即可。borderValue是用来填充边界的像素值。
下面是一个使用cv2.warpAffine()进行图像旋转的例子:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
rows, cols = img.shape[:2]
# 旋转角度
angle = 45
# 旋转中心
center = (cols / 2, rows / 2)
# 生成旋转矩阵
M = cv2.getRotationMatrix2D(center, angle, 1)
# 执行仿射变换
img_rotate = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow('image', img)
cv2.imshow('rotate', img_rotate)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,我们首先读取了一张图片,并获取了它的行数和列数。然后,我们定义了旋转角度和旋转中心。接着,我们用cv2.getRotationMatrix2D()生成了旋转矩阵M。最后,我们使用cv2.warpAffine()对图像进行了旋转,并将结果显示在了窗口中。
阅读全文