この画像でfind_contour(opencvモジュール)を適用すると、5つのオブジェクト(記号ごとに1つ)のみを取得できます:https ://docs.google.com/file/d/0ByS6Z5WRz-h2WHEzNnJucDlRR2s/edit ?今私は64のオブジェクトを取得します
その後、Humomentsを取得して、他の画像と比較したいと思います。今のところ、同じ画像を少し翻訳してみます。テストすると、同じ画像が返されます。
私の質問私はどうすればユーモメントを適用するために5つのオブジェクトだけを取得できますか、または画像のユーモメントを計算する他の解決策がある場合はどうすればよいですか?
import cv2
im = cv2.imread('Sassatelli 1984 n. 165 mod1.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(imgray, (0,0), 5)
cv2.imshow('Blur', blur)
cv2.waitKey()
th = 20
edges = cv2.Canny(blur, th, th*3)
cv2.imshow('canny',edges)
cv2.waitKey()
contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print('objects found')
print(len(contours))
cnt = contours[0]
cv2.drawContours(blur,contours,-1,(0,255,0),3)
cv2.imshow('draw contours',blur)
cv2.waitKey()
moments = cv2.moments(cnt)