2012-01-22 10 views
10

Chức năng OpenCV findhomography() tìm một phép chuyển đổi đồng bộ giữa các điểm khớp của hai hình ảnh. (Xem Definition)OpenCV: tham số tự tin RANSAC để tìm kiếm một homography

Để tìm tập con phù hợp của các điểm RANSAC có thể được sử dụng.

Dưới đây là đánh bắt: Ngược lại với chức năng khác trong OpenCV mà sử dụng RANSAC (ví dụ findfundamentalMat (Xem Definition)) tham số RANSAC cho tự tinkhông thể được thay đổi. Chỉ có ngưỡng tái chiếu mới có thể được chuyển thành một đối số.

Tôi đã tìm nguồn OpenCV và cho số findhomography() độ tin cậy được mã hóa thành 0,995.

Vì mục đích của tôi, tôi cần tăng điều này. Có cách nào để làm điều này mà không thay đổi giá trị trong chính nguồn OpenCV?

Có lý do nào khiến mã này phải được mã hóa cứng không?

PS: Tôi đã thêm thay đổi request under Ticket 1557 cho phiên bản phụ tiếp theo.

Trả lời

5

Lý do được mã hóa cứng là đối với phần lớn người dùng, đây là một lựa chọn rất tốt.

Có thể bạn là người đầu tiên cảm thấy cần thêm điều gì đó. Nhưng đây là lý do tại sao OpenCV được mở - lấy mã, sửa đổi nó, tạo một bản vá và đề xuất nó cho nhóm phát triển OpenCV - bất cứ điều gì bạn thích.

Và, bạn có chắc đây là những gì bạn cần không? Thông thường, một ngưỡng reproj chặt chẽ hơn sẽ thực hiện thủ thuật. Nếu bạn gặp vấn đề, chúng có thể ở một nơi khác - một số điểm được chọn sai, một lỗi quá lớn phù hợp với điểm khớp, v.v.

+1

Bạn nói đúng: Tôi chỉ có thể tự thay đổi và tham gia vào quá trình phát triển. Trong thực tế, đây là những gì tôi đã làm trong subversion địa phương của tôi và nó hoạt động tốt. – user834985

5

Vâng, bạn không phải là người đầu tiên cần thay đổi các biến hoặc chức năng bị bẻ khóa trong OpenCV. Trên thực tế, chúng tôi đang thay đổi rất nhiều chức năng OpenCV để làm cho chúng nhanh hơn và hiệu quả hơn cho điện thoại di động. Nếu bạn muốn thay đổi RANSAC, chỉ cần tạo một bản sao của lớp với một cái tên khác

class CvModelEstimator2 
{ 

} 

trong mã của bạn, và sửa đổi nó cho mình như bạn cần. Bạn cũng có thể thay đổi số lần lặp lại tối đa cho RANSAC, mặc định là rất cao và làm cho ứng dụng thực sự chậm.