2016-05-12 19 views
18

Tôi đã cố gắng tìm cách tạo điểm tương đồng (bằng%) sau khi so sánh hai hình ảnh bằng SIFT trong python (2.7.x) opencv (2.4.9). Tôi chỉ có thể tìm thấy các ví dụ vẽ đường thẳng giữa các trận đấu. Làm cách nào để tôi tiếp tục điều này.Tạo điểm số tương tự theo tỷ lệ phần trăm từ SIFT sử dụng opencv

+0

chính xác là tôi đang tìm triển khai python của hàm VL_UBCMATCH – user93

+0

Bạn có tìm thấy nó không? – edyvedy13

+1

Không, tôi không thể tìm thấy. Một mã ví dụ sẽ thực sự hữu ích – user93

Trả lời

6

Có một hàm oplv tương đương với hàm vl_ubcmatch trong Matlab.

Đây là đoạn trích từ opencv documentation.

# create BFMatcher object 
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True) 

# Match descriptors. 
matches = bf.match(des1,des2) 

matches = bf. match (des1, des2) phù hợp với hai bộ mô tả và trả về một danh sách các đối tượng DMatch. Đối tượng DMatch này có bốn thuộc tính: distance, trainIdx, queryIdx, imgIdx. Các giá trị trả về này tương đương với hàm vl_ubcmatch.

Tôi hy vọng bạn sẽ thấy nó hữu ích.

+0

Điều tôi cần là điểm số. VL_UBCMATCH ngoài số điểm trả về trận đấu – user93

+1

Theo [VLFEAT documentation] (http://www.vlfeat.org/matlab/vl_ubcmatch.html), VL_UBCMATCH trả về khoảng cách Euclide bình phương với biến số điểm. Trong thực tế, khi tôi thử [Hướng dẫn SIFT] (http://www.vlfeat.org/overview/sift.html), biến số có giá trị khoảng cách giữa hai bộ mô tả SIFT. điểm số (:, 1) là 21647 và 'sum ((int64 (da (:, 9)) - int64 (db (:, 618))).^2)' có cùng giá trị, trong đó da (:, 9) là mô tả SIFT thứ 9 trong ImageA, db (:, 618) là mô tả SIFT 618 trong ImageB. Đây không phải là đầu ra mong muốn của bạn? – satojkovic

Các vấn đề liên quan