Problemy z obrazem Skeletonization do wydobywania konturów

Znalazłem ten kod, aby uzyskać skeletonowany obraz. Mam obraz koła (https://docs.google.com/file/d/0ByS6Z5WRz-h2RXdzVGtXUTlPSGc/edit?usp=sharing).

img = cv2.imread(nomeimg,0)
size = np.size(img)
skel = np.zeros(img.shape,np.uint8)

ret,img = cv2.threshold(img,127,255,0)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
done = False

while( not done):
    eroded = cv2.erode(img,element)
    temp = cv2.dilate(eroded,element)
    temp = cv2.subtract(img,temp)
    skel = cv2.bitwise_or(skel,temp)
    img = eroded.copy()

    zeros = size - cv2.countNonZero(img)
    if zeros==size:
        done = True

print("skel")
print(skel)

cv2.imshow("skel",skel)
cv2.waitKey(0)

Problem polega na tym, że wynik obrazu nie jest „szkieletem”, ale zestawem punktów! Moim celem było wyodrębnienie obrysu konturu po tym, jak skeletonowałem obraz. Jak mogę edytować mój kod, aby go rozwiązać? Poprawne jest użycie cv2.findContours do znalezienia kręgu szkieletu?

questionAnswers(2)

yourAnswerToTheQuestion