opencv仿射变换与逆变换
时间: 2024-01-27 14:15:20 浏览: 258
以下是OpenCV中的仿射变换和逆变换的示例代码:
1. 仿射变换:
```python
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread(r"D:\tuxiang\qq.jpg")
# 原始图像中的三个坐标点
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
# 变换后的图像中的三个点坐标
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
# 计算仿射变换矩阵
M = cv2.getAffineTransform(pts1, pts2)
# 进行仿射变换
dst1 = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
# 显示原始图像和变换后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Transformed Image', dst1)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 逆变换:
```python
import cv2
import numpy as np
# 读取原始图像
img = cv2.imread(r"D:\tuxiang\qq.jpg")
# 原始图像中的三个坐标点
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
# 变换后的图像中的三个点坐标
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])
# 计算逆仿射变换矩阵
M_inv = cv2.getAffineTransform(pts2, pts1)
# 进行逆仿射变换
dst2 = cv2.warpAffine(img, M_inv, (img.shape[1], img.shape[0]))
# 显示原始图像和逆变换后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Inverse Transformed Image', dst2)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文