仿射变换,python
时间: 2024-03-24 13:35:12 浏览: 112
仿射变换
4星 · 用户满意度95%
仿射变换是一种二维几何变换,它保持了原始图像中的平行线仍然保持平行,并且保持了原始图像中的直线仍然保持直线。在仿射变换中,图像中的点通过线性变换和平移来进行变换。
在Python中,可以使用OpenCV库来实现仿射变换。以下是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取原始图像
img = 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(img, M, (img.shape[1], img.shape[0]))
# 显示结果图像
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取了原始图像,然后定义了原始图像中的三个点和目标图像中对应的三个点。接下来,使用`cv2.getAffineTransform()`函数计算出仿射变换矩阵M。最后,使用`cv2.warpAffine()`函数进行仿射变换,并显示结果图像。
阅读全文