【发布时间】:2017-05-05 19:17:46
【问题描述】:
Snapshot of the issue我一直在尝试检测视频中的圆圈。我检查了许多教程和 stackoverflow 问题,我的代码似乎是正确的。它甚至可以正确编译。然而,打开 GUI 窗口需要时间,而且一旦打开,它就会崩溃。这是我的代码有什么问题吗?
`
import cv2
import numpy as np
cap = cv2.VideoCapture('Red Motion Spin Looping Motion Background.mp4')
while (cap.isOpened()):
ret,img = cap.read()
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(cimg,cv2.HOUGH_GRADIENT,1,20,
param1=50,param2=30,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
` 更新:我听从了@Micka 的建议,窗口出现了。但是它花了很长时间才打开,并且没有超出视频的第一帧screenshot of the current situation
【问题讨论】:
-
欢迎来到 SO!。请阅读此how-to-ask 以完善您的问题,例如显示回溯(如果有)。
-
有错误信息吗?捕获后:在继续之前检查 img 是否为空。找出它在哪一行崩溃(例如,在每行之前打印一些内容)。
-
@Micka 我将通过编辑问题发布一张图片说明它的作用。它只说初始化完成,之后什么也不做。我圈出了 GUI
-
@thewaywewere 感谢您的意见。我已经编辑了我的问题
-
什么样的gui?你的意思是opencv窗口吗?将
cv2.waitKey(1)放在imshow之后的循环中,否则什么都不会显示(opencv会在waitkey时间内渲染)。
标签: python opencv computer-vision geometry hough-transform