2017-12-22 3 views
1

법원의 윤곽을 감지하려고하지만 이미지의 직사각형 모양을 인식 할 수 없습니다. Python/OpenCV - 공중 이미지에서 농구 코트 라인을 감지합니다.

b,g,r = cv2.split(img) 
rgb_img = cv2.merge([r,g,b]) 

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
edges = cv2.Canny(gray,100,200,apertureSize = 3) 

lines = cv2.HoughLines(edges,1,np.pi/180,200) 
for rho,theta in lines[0]: 
    a = np.cos(theta) 
    b = np.sin(theta) 
    x0 = a*rho 
    y0 = b*rho 
    x1 = int(x0 + 1000*(-b)) 
    y1 = int(y0 + 1000*(a)) 
    x2 = int(x0 - 1000*(-b)) 
    y2 = int(y0 - 1000*(a)) 

    cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2) 

Output image

검출 라인

는 이미지의 우측에 표시되는 적색이다.

* HoughLinesP()도 시도했지만 필요하지 않은 라인을 선택합니다. 임계 값과 최소 및 최대 라인 길이를 조정 해 보았습니다.

** Input Image

+0

입력 이미지를 게시 할 수 있습니까? – GaneshTata

+0

편집 및 게시 @GaneshTata – Reward

+1

당신은 그냥 캐니와 hough 직접하여 좋은 결과를 얻을 수 없습니다. https://i.stack.imgur.com/mtLA3.png 그리고 당신은 또한 당신이 정말로 원하는 윤곽을 말하지 않습니다. 모든 흰색 직선? 흰둥이? – Silencer

답변

관련 문제