2013-12-11 4 views
3

약간의 질문이 있습니다. 현재 웹캠을 사용하여 나무 딸기 파이로 서클을 감지하고 있습니다. HoughCircles를 사용하여 파이썬에서 원을 감지하는 방법은 많이 있습니다. 그것은 조금 너무 느리다 : 그것은 나에게 2 초의 거대한 지체를 준다. 웹캠 앞에 서클을 유지하고 있어도이 초에서 "아무 서클도 검색되지 않았습니다"라는 인쇄를 계속합니다. 몇 초 후 센터의 위치가 인쇄됩니다.라즈베리 파이를 사용하여 서클을 찾는 동안 FPS를 향상시키고 지연을 줄이려면 어떻게해야합니까?

아래 코드를 붙여 넣으면 도움이됩니다! 당신이 원하는 일에 대해 아무것도 모른 채

import cv2 
import numpy as np 
import time 

camera_port = 0 
ramp_frames = 20 #throw away to make it adjust to light levels 

camera = cv2.VideoCapture(camera_port) #define camera class 
retval = camera.set(3,320) #width of frame 
retval = camera.set(4,240) #height of frame 

def get_image(): #function to get 1 image 
retval, im = camera.read() 
return im 

for i in xrange(ramp_frames): #adjust to light levels, throw away 20 frames 
temp = get_image() 

while True: 
    time.sleep(1) 
    camera_capture = get_image() # Take the actual image we want to keep 

    #processing 
    img = camera_capture 
    cimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

    circles = cv2.HoughCircles(cimg,cv2.cv.CV_HOUGH_GRADIENT,1,1,param1=200,param2=80,minRadius=0,maxRadius=0) 
    if circles is not None: 
     x=circles[0][0][0] 
     y=circles[0][0][1] 
     print "x= ",x,"y= ",y 
    else: 
     print "no circles detected" 

답변

0

, 내가

if circles is not None: 

매우 원치 않는 것을 알고있다!

은 다음을 참조하십시오 "Python Boolean Operations"

시도 :

if circles: 

나는 그것이 당신의 문제를 해결할 것이라고 생각하지 않지만, 적어도 문제가 더 파이썬을 볼 것이다! ;)

행운을 빌어 요!

+0

원이 감지되면 원이 배열이고 원이 감지되지 않으면 "NoneType"개체가 될 가능성이 있습니다. – user3091463

+0

나는 그것이 사실 일 것 같아 ... 아마 내가 사용하고있는 패키지에 대해 아무 것도 모른 채 대답을해서는 안된다. 그러나 나는 여전히 당신이 반복하고있는 것처럼 진술이 매우 불쾌하지는 않다라고 생각한다. "없다."더 깔끔한 방법이 있어야한다. 하지만 지금은 내 대답을 게시하지 않은 것으로 간주하십시오. ... ( – Kraay89

+0

카메라의 프레임 속도는 무엇이며 20fps보다 높을 수 있습니까? 아는 한 웹캠은 올바른 조명을 찾으십시오. 조정 시간이 길어질 수 있습니다 (= 더 많은 프레임). 폐기 된 프레임 수를 늘리십시오. – Kraay89