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?