cv2 透视变换 示例
时间: 2024-09-30 15:01:19 浏览: 33
`cv2`(OpenCV的Python接口)中的透视变换是一种用于改变图像几何形状的技术,主要用于将非矩形区域转换成矩形或者其他预设的形状。它通常应用于图像校正、物体识别等领域,比如从鸟瞰视角恢复到正常视图。
下面是一个简单的`cv2.getPerspectiveTransform()`和`cv2.warpPerspective()`的示例,这个例子将四边形框拉伸并旋转,使其变成一个标准的矩形:
```python
import cv2
import numpy as np
# 假设我们有原始图像和四个顶点坐标
img = cv2.imread('image.jpg')
src_points = np.array([[56, 65], [368, 52], [28, 387], [389, 390]], dtype=np.float32)
dst_points = np.array([[0, 0], [img.shape[1] - 1, 0], [0, img.shape[0] - 1], [img.shape[1] - 1, img.shape[0] - 1]], dtype=np.float32)
# 计算透视变换矩阵
M = cv2.getPerspectiveTransform(src_points, dst_points)
# 应用透视变换
warped_img = cv2.warpPerspective(img, M, (img.shape[1], img.shape[0]))
cv2.imshow('Original', img)
cv2.imshow('Warped', warped_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个例子中,`src_points`是输入图像中四个兴趣点的坐标,`dst_points`是我们想要变形的目标矩形位置。`warpPerspective()`函数会根据这两个点集应用透视变换。
阅读全文