python下用OpenCV实时圆形检测
时间: 2023-08-23 07:15:15 浏览: 136
opencv偵測圓形
3星 · 编辑精心推荐
要在Python下使用OpenCV进行实时圆形检测,您可以使用摄像头捕获实时视频,并在每个帧上执行圆形检测。以下是一个简单的示例代码:
```python
import cv2
import numpy as np
# 创建VideoCapture对象,打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取每一帧
ret, frame = cap.read()
# 如果无法读取帧,则跳出循环
if not ret:
break
# 将帧转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 进行边缘检测
edges = cv2.Canny(gray, 50, 150)
# 进行霍夫圆变换来检测圆形
circles = cv2.HoughCircles(edges, cv2.HOUGH_GRADIENT, dp=1, minDist=50, param1=50, param2=30, minRadius=10, maxRadius=100)
# 如果检测到圆形,则绘制圆形
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cv2.circle(frame, (x, y), r, (0, 255, 0), 4)
# 显示帧
cv2.imshow("Circle Detection", frame)
# 按下 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
该代码会打开默认摄像头,并在每个帧上执行圆形检测。它会将检测到的圆形用绿色圆圈标注出来,并实时显示在一个窗口中。要退出循环,请按下 'q' 键。
请注意,该代码仅为演示目的,摄像头的质量和环境条件可能会影响检测结果。您可能需要根据实际情况调整参数和处理方法。希望对您有所帮助!如有其他问题,请随时提问。
阅读全文