opencv仿射变换python
时间: 2023-08-23 12:07:56 浏览: 174
在OpenCV中,可以使用cv2.warpAffine函数来实现图像的仿射变换。下面是一个示例代码,演示了如何使用OpenCV进行仿射变换:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('input.jpg')
# 原图像的四个角点坐标
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
# 变换后的图像的四个角点坐标
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
# 生成仿射变换矩阵
M = cv2.getAffineTransform(pts1, pts2)
# 进行仿射变换
result = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
# 显示原图和变换后的图像
cv2.imshow('Original', image)
cv2.imshow('Affine Transform', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的示例代码中,首先读取了一个名为`input.jpg`的图像。然后定义了原图像的三个角点坐标`pts1`和变换后的图像的三个角点坐标`pts2`,这些坐标用于生成仿射变换矩阵。接下来,使用`cv2.getAffineTransform`函数获取仿射变换矩阵`M`。最后,使用`cv2.warpAffine`函数将原图像进行仿射变换得到变换后的图像,并显示出来。
注意:在实际应用中,你可以根据需要自定义更多的角点坐标,以实现更复杂的仿射变换效果。
阅读全文