用python实现检测图片中矩形的并显示出来
时间: 2024-04-22 07:22:26 浏览: 94
可以使用OpenCV库实现检测图片中矩形并显示出来。以下是一个示例代码,其中使用了cv2.findContours()函数来查找矩形轮廓,使用cv2.drawContours()函数绘制矩形轮廓:
```python
import cv2
# 读取图片
img = cv2.imread('test.jpg')
# 将图片转为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用Canny边缘检测器检测边缘
edged = cv2.Canny(gray, 30, 200)
# 查找矩形轮廓
contours, hierarchy = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 遍历轮廓
for contour in contours:
# 计算矩形轮廓的面积
area = cv2.contourArea(contour)
# 如果面积小于阈值,则忽略
if area < 100:
continue
# 计算矩形轮廓的周长
perimeter = cv2.arcLength(contour, True)
# 使用approxPolyDP函数近似地计算轮廓的多边形形状
approx = cv2.approxPolyDP(contour, 0.02 * perimeter, True)
# 如果形状为4个点,说明是矩形
if len(approx) == 4:
# 绘制矩形轮廓
cv2.drawContours(img, [approx], -1, (0, 255, 0), 2)
# 显示图片
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.drawContours()函数的第二个参数是轮廓的列表,需要使用方括号将轮廓括起来。第三个参数表示要绘制的轮廓索引,-1表示绘制所有轮廓。第四个参数是矩形的颜色,(0, 255, 0)表示绿色。第五个参数是线条粗细。你可以根据需要修改这些参数。
阅读全文