在python中使用霍夫圆检测的时候怎么将检测到的圆在视频中用绿色框显示出来
时间: 2024-05-01 17:16:11 浏览: 81
使用OpenCV库可以实现霍夫圆检测及圆的显示。
以下是一个示例代码,可以实现在视频中检测圆并用绿色框标记出来:
```python
import cv2
# 视频输入
cap = cv2.VideoCapture('video.mp4')
while True:
# 读取当前帧
ret, frame = cap.read()
if not ret:
break
# 灰度转换
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 霍夫圆检测
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=100, param1=50, param2=30, minRadius=0, maxRadius=0)
# 绘制圆
if circles is not None:
circles = circles.astype(int)
for x, y, r in circles[0]:
cv2.circle(frame, (x, y), r, (0, 255, 0), 2)
# 显示当前帧
cv2.imshow('frame', frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在代码中,`cv2.HoughCircles()` 函数用于进行霍夫圆检测,检测到的圆会以 `(x, y, r)` 的形式存储在 `circles` 变量中。然后使用 `cv2.circle()` 函数绘制圆,参数依次为:图像、圆心坐标、半径、颜色、线宽。最后,使用 `cv2.imshow()` 函数显示当前帧,按下键盘上的 “q” 键退出程序。
在代码中,我们将圆的标记颜色设置为绿色 `(0, 255, 0)`,可以根据需求进行修改。
阅读全文