OpenCV是一个功能强大的计算机视觉库,适用于图像处理和形状检测。这里进行圆和椭圆的检测。
步骤:
-
边缘检测和轮廓提取: 使用 OpenCV 的
cv2.Canny
检测边缘,cv2.findContours
提取所有轮廓。 -
形状筛选:
- 计算轮廓的面积和周长。
- 使用公式 (4π×面积)/(周长2)(4\pi \times \text{面积}) / (\text{周长}^2)(4π×面积)/(周长2) 计算轮廓的圆形度(值接近1说明是圆形)。
- 对于其他椭圆形,可以用
cv2.fitEllipse
进一步判断长短轴比例。
-
过滤非目标形状:
- 筛选出符合圆形或椭圆形状的轮廓,忽略其他形状(比如直线、三角形、方形等)。
- 在检测圆形和椭圆时,确保这些图案符合一定的大小要求(例如面积、周长、最小半径等),过滤掉那些过小的图案。
-
绘制结果: 标记检测出的圆和椭圆。
-
代码:
import cv2 import numpy as np # 读取图片 image = cv2.imread("10.jpg") gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 边缘检测 edges = cv2.Canny(gray, 50, 150) # 检测轮廓 contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.C