写个边缘检测对边缘进行矩形拟合的代码
时间: 2024-06-12 07:08:15 浏览: 181
这里提供一种基于Python和OpenCV库的边缘检测对边缘进行矩形拟合的代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 轮廓检测
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 矩形拟合
rects = []
for contour in contours:
# 计算轮廓的最小矩形
rect = cv2.minAreaRect(contour)
# 将矩形转换为四个顶点坐标
box = cv2.boxPoints(rect)
# 将坐标转换为整数
box = np.int0(box)
# 将矩形的四个顶点坐标添加到列表中
rects.append(box)
# 绘制矩形
for rect in rects:
cv2.drawContours(img, [rect], 0, (0, 0, 255), 2)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注:该代码假设图像文件名为“image.jpg”,需要安装NumPy和OpenCV库。
阅读全文