opencv 识别矩形
时间: 2023-10-11 20:14:21 浏览: 152
使用OpenCV检测图像中的矩形
5星 · 资源好评率100%
在 OpenCV 中,可以使用轮廓检测来识别矩形。
首先,将图像转为灰度图像并进行边缘检测。然后,使用 `findContours()` 函数找到所有轮廓。对于每个轮廓,可以使用 `approxPolyDP()` 函数将其近似为一个多边形,并计算多边形的边数。如果边数为 4,那么这个多边形就是矩形。
以下是一个示例代码:
```python
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 150)
contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
approx = cv2.approxPolyDP(cnt, 0.01 * cv2.arcLength(cnt, True), True)
if len(approx) == 4:
cv2.drawContours(img, [approx], 0, (0, 255, 0), 2)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中 `cv2.RETR_EXTERNAL` 表示只检测最外层轮廓,`cv2.CHAIN_APPROX_SIMPLE` 表示使用简单的轮廓逼近算法。`cv2.approxPolyDP()` 函数的第二个参数表示逼近精度,可以根据实际情况进行调整。
阅读全文