2014-12-25 2 views
2

가장 큰 오브젝트의 윤곽을 그리려하고 있습니다. 나는이 코드를 사용하는 가장 큰 목적 찾으려면큰 윤곽선 오브젝트를 그릴 때 Python Opencv drawContours가 실패합니다.

All contours objects

:

우선 모든 윤곽을 그리기 이미지를 표시합니다

maxsize = 0 
best = 0 
count = 0 
for cnt in contours: 
    if cv2.contourArea(cnt) > maxsize: 
     maxsize = cv2.contourArea(cnt) 
     best = count 
    count += 1 

cv2.drawContours(img_rgb, contours[best], -1, (0,0,255), 2) 

을 그리고 그 결과는 다음과 같습니다 Contours of biggest object

윤곽선이 연결되지 않은 이유는 무엇입니까?

미리 감사드립니다.

답변

2

코드에서 -1 매개 변수를 사용하여 함수에 대한 모든 윤곽을 그려야한다고 표시하면 실제로는 best 만 그려야합니다. 따라서 -1 (all) 대신 원하는 윤곽선을 그리는 기능을 요청할 수 있습니다.

당신은 라인 교체이 문제를 해결할 수 있습니다

cv2.drawContours(img_rgb, contours[best], -1, (0,0,255), 2) 

과 :

cv2.drawContours(img_rgb, contours, best, (0,0,255), 2) 

또는 여전히 -1를 사용할 수 있지만 다음 매개 변수로 점 세트를 필요로하기 위하여려고하고있다 ([]) :

cv2.drawContours(img_rgb, [contours[best]], -1, (0,0,255), 2) 

이 테마에 대해 OpenCV Docs page