2012-02-19 46 views
6

Như bạn thấy trong hình ảnh, tôi muốn so sánh các đường bao này.OpenCV || tương tự đường viền

contours

Tôi cần chương trình OpenCV của tôi để trả về TRUE khi các đường nét được so sánh với nhau. Tất cả chúng đều giống nhau nhưng bạn có thể thấy chúng không giống hệt nhau.

Kết quả bạn thấy ở đây là những gì tôi đã trả về từ hàm findContours.

Vì vậy, tôi đang tìm cách tiếp cận phù hợp cho tương tự cho các đường nét này.

Mọi trợ giúp đều tuyệt vời.

Cảm ơn bạn rất nhiều trước.

Trả lời

5

Hãy xem cvMatchShapes() (được sử dụng để gọi cvMatchContours()).

+0

Cảm ơn người đàn ông! Tôi sẽ truy cập ngay lập tức. Tôi đã nghĩ đến việc sử dụng phương pháp Ne Neighbor lân cận K nhưng tôi không chắc chắn làm thế nào để thực hiện nó một cách chính xác trong OpenCV. –

+0

Với niềm vui. Đã xong :-) –

+0

Adi, bạn có thể cho tôi biết cách sử dụng cvMatchShapes không. Khi tôi cố gắng chạy nó với các đường nét đầy vector > Tôi nhận được: Lỗi OpenCV: Xác nhận không thành công. Cảm ơn trước. –

5

Để sử dụng chức năng matchShapes(), bạn phải vượt qua vector<Point>, vector<Point> làm đối số. Vì vậy, không phải contours container như bạn làm, nhưng cụ thể đường nét từ nó. Hình dạng bạn đang cố gắng so sánh phải là một đường viền.

+0

Cảm ơn người đàn ông! Sai lầm ngu ngốc của tôi :-) Đó là vector thay vì vector >. –

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