opencv 正矩形
时间: 2023-06-28 17:04:19 浏览: 100
opencv 矩阵
要检测正矩形,可以使用OpenCV中的cv2.minAreaRect()函数。该函数可以计算给定轮廓的最小包围矩形,并返回矩形的四个角点坐标和旋转角度。
以下是一个基本示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测边缘
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 寻找轮廓
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓
for contour in contours:
# 计算最小包围矩形
rect = cv2.minAreaRect(contour)
# 转为整数类型
box = cv2.boxPoints(rect).astype(int)
# 绘制矩形
cv2.drawContours(img, [box], 0, (0, 0, 255), 2)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在该示例中,首先读取图像并将其转换为灰度图。然后使用Canny算子检测边缘,接着使用findContours函数寻找轮廓。然后对于每个轮廓,计算最小包围矩形并绘制矩形。最后将结果显示出来。
阅读全文