gpt4 book ai didi

python - 视频上的 cv2.hough 圆圈错误

转载 作者:太空宇宙 更新时间:2023-11-04 11:11:43 26 4
gpt4 key购买 nike

当我运行 cv2.HoughCircles() 时出现错误

Traceback (most recent call last):
File "cv.py", line 1, in <module>
import cv2,cv
File "/home/jestinjoy/cv.py", line 19, in <module>
circles = np.uint16(np.around(circles))
File "/usr/lib/pymodules/python2.7/numpy/core/fromnumeric.py", line 2277, in around
return _wrapit(a, 'round', decimals, out)
File "/usr/lib/pymodules/python2.7/numpy/core/fromnumeric.py", line 37, in _wrapit
result = getattr(asarray(obj),method)(*args, **kwds)
AttributeError: rint

我的代码是

GNU nano 2.2.6 文件:cv.py

import cv2,cv
import numpy as np

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
rval, frame = vc.read()
else:
rval = False

while rval:
cv2.imshow("preview", frame)
rval, frame = vc.read()
img = cv2.medianBlur(frame,5)
imgg = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cimg = cv2.cvtColor(imgg,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(imgg,cv2.cv.CV_HOUGH_GRADIENT,1,10,param1=100,param2=30,minRadius=5,maxRadius=20)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),1) # draw the outer circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) # draw the center of the circle
key = cv2.waitKey(20)
if key == 27: # exit on ESC
break
cv2.destroyWindow("preview")

最佳答案

你没有检查你的 circles 是否为 None。如果你这样做,它会起作用:

import cv2
import numpy as np

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
rval, frame = vc.read()
else:
rval = False

while rval:
cv2.imshow("preview", frame)
cv2.waitKey(1)
rval, frame = vc.read()
img = cv2.medianBlur(frame,5)
imgg = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cimg = cv2.cvtColor(imgg,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(imgg,cv2.cv.CV_HOUGH_GRADIENT,1,10,param1=100,param2=30,minRadius=5,maxRadius=20)
if circles is None:
continue
print circles
#circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),1) # draw the outer circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) # draw the center of the circle
key = cv2.waitKey(20)
if key == 27: # exit on ESC
break
cv2.destroyWindow("preview")

生成的输出:

sam@tuwien:/tmp$ python cv.py 
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
[[[ 335.5 368.5 10.12422848]]]
[[[ 334.5 386.5 10.12422848]]]
[[[ 349.5 382.5 10.12422848]]]
[[[ 392.5 365.5 10.12422848]]]
[[[ 378.5 370.5 10.12422848]]]
[[[ 378.5 368.5 12.34908867]]]
[[[ 391.5 369.5 14.57738018]]]
[[[ 379.5 370.5 10.12422848]]]

关于python - 视频上的 cv2.hough 圆圈错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com