Tôi đã cố gắng so sánh hai hình ảnh và sử dụng thời điểm Hu để so sánh đường viền được trích xuất từ những hình ảnh sau: https://docs.google.com/file/d/0ByS6Z5WRz-h2WHEzNnJucDlRR2s/edit và https://docs.google.com/file/d/0ByS6Z5WRz-h2VnZyVWRRWEFva0k/edit Hình ảnh thứ hai chỉ bằng hình ảnh đầu tiên được xoay và tôi dự kiến là kết quả giống nhau. Chúng hơi khác một chút.So sánh thời điểm Hu
Humoments dấu trên bên phải (hình ảnh đầu tiên):
[[ 6.82589151e-01]
[ 2.06816713e-01]
[ 1.09088295e-01]
[ 5.30020870e-03]
[ -5.85888607e-05]
[ -6.85171823e-04]
[ -1.13181280e-04]]
Humoments dấu trên bên phải (hình ảnh thứ hai):
[[ 6.71793060e-01]
[ 1.97521128e-01]
[ 9.15619847e-02]
[ 9.60179567e-03]
[ -2.44655863e-04]
[ -2.68791106e-03]
[ -1.45592441e-04]]
Trong video này: http://www.youtube.com/watch?v=O-hCEXi3ymU tại Minut 4th tôi xem ông thu được chính xác như nhau. Tôi sai ở đâu?
Dưới đây là mã của tôi:
nomeimg = "Sassatelli 1984 ruotato.jpg"
#nomeimg = "Sassatelli 1984 n. 165 mod1.jpg"
img = cv2.imread(nomeimg)
gray = cv2.imread(nomeimg,0)
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV)
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(4,4))
imgbnbin = thresh
imgbnbin = cv2.dilate(imgbnbin, element)
#find contour
contours,hierarchy=cv2.findContours(imgbnbin,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
#Elimination small contours
Areacontours = list()
area = cv2.contourArea(contours[i])
if (area > 90):
Areacontours.append(contours[i])
contours = Areacontours
print('found objects')
print(len(contours))
#contorus[3] for sing in first image
#contours[0] for sign in second image
print("humoments")
mom = cv2.moments(contours[0])
Humoments = cv2.HuMoments(mom)
print(Humoments)
Câu hỏi cuối cùng: 1) Phạm vi tôi có thể sử dụng để nói rằng chúng giống nhau hoặc hình ảnh tương tự cho mọi sự bất thường? 2) Tôi phải sử dụng HuMoments "thô" của tôi hoặc "đăng nhập" Humoments cho một máy Vector hỗ trợ hoặc một K-nn? – postgres
@postgres - 1) Hơi chủ quan của nó khi sử dụng hình ảnh, nó phụ thuộc phần lớn vào hình ảnh tương tự như thế nào, được coi là một trận đấu. Tốt nhất để thử nghiệm và đặt ngưỡng thích hợp. 2) Tôi không biết nhiều về SVN hoặc KNN, nhưng bạn có thể sử dụng, hãy thử và xem;) – fraxel