2012-07-11 65 views
6

EDIT: bây giờ tôi đã tìm thấy câu hỏi tương tự với một câu trả lời rất chi tiết:tính điểm đến cho findHomography của OpenCV

proportions of a perspective-deformed rectangle


Tôi đang sử dụng OpenCV findHomography()warpPerspective() phương pháp để "de skew" một bức ảnh của một tờ giấy. Tôi có điều này phần lớn làm việc nhưng tôi bị mắc kẹt trên một chi tiết.

Phần tôi không hiểu cách thực hiện là tính toán tập hợp điểm đích tối ưu để nhập vào findHomography(). Tôi biết rằng tôi muốn đầu ra của tôi là hình chữ nhật, nhưng tôi không biết tỷ lệ chiều rộng đến chiều cao của hình chữ nhật. Tôi cũng muốn hình chữ nhật đầu ra có kích thước sao cho có tỷ lệ nhỏ nhất của hình ảnh đầu ra khi tôi áp dụng phép biến đổi qua warpPerspective(). Tất cả những gì tôi có là bốn điểm hình thành tứ giác mà tôi muốn biến đổi trong hình ảnh nguồn. Làm cách nào để tính toán hình chữ nhật đích có kích thước tối ưu?

+0

Duplicate của câu hỏi này: http://stackoverflow.com/questions/1194352/proportions-of-a-perspective-deformed-rectangle – TomSwift

Trả lời

4

Phương pháp findHomography() sẽ cần bốn điểm (nếu sử dụng Biến tuyến tính trực tiếp). Nếu bạn muốn tập hợp tối ưu, bạn sẽ cần bộ 4 điểm mà bản lý lịch của DLT đưa ra lỗi tái phát tối thiểu. Ý tôi là, bạn cần một phương pháp phát hiện các ngoại lệ/ngoại lệ cho mô hình toán học cụ thể od DLT.

Phương pháp này là RANSAC và OpenCV đã triển khai. Bạn sẽ tìm thấy các ví dụ về findhomography() kết hợp với RANSAC.

Cá nhân tôi tìm thấy một vấn đề với điều này và đó là số lần lặp lại RANSAC trong OpenCV, quá cao. Nếu bạn đang tìm kiếm tốc độ tối ưu, bạn sẽ phải đào sâu vào các mã.

+0

cám ơn; thông tin tốt. Nhưng không phải những gì tôi cần; nhu cầu chính của tôi là tìm tỷ số W đến H cho hình chữ nhật đầu ra, và tôi tìm thấy câu trả lời trong câu hỏi tương tự mà tôi đã tìm thấy và đánh dấu. – TomSwift

+0

bạn có thể cắm nhiều hơn 4 điểm vào 'findHomography()' không? – solvingPuzzles

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