2012-06-14 26 views
7

Tôi đang cố gắng học opencv. Tôi có một câu hỏi liên quan đến homography và hình học epipolar.Tôi có thể sử dụng lại ma trận Homography được tính từ 2 hình ảnh khác nhau của cùng một cảnh được chụp bởi 2 máy ảnh khác nhau không?

Giả sử tôi đã tính toán homography bằng cách sử dụng hàm cvFindHomography() sử dụng hai điểm đối tượng được kết hợp với hai máy ảnh từ hai điểm xem khác nhau.

Có một lỗi nếu tôi tái sử dụng ma trận homography để phát hiện điểm tương ứng trong máy ảnh 1 (phải) từ hình ảnh chụp bởi camera2 (trái) (vì tôi biết rằng x' = H.x nơi x' là 2d đồng nhất điểm tính năng hình ảnh bên trái, x hình ảnh đúng '2d tương ứng với điểm tính năng đồng nhất và H là ma trận homography) ở đâu các điểm 2d trong camera1 và camera2 không được sử dụng để tính toán ma trận homography?

Điều tôi muốn hỏi là tôi có thể sử dụng lại ma trận ma trận được tính toán của hai máy ảnh đó để tìm các điểm tương ứng cho bất kỳ hình ảnh nào không được sử dụng để tính ma trận homography không?

Tôi có sử dụng hình ảnh nào khi ảnh được xác định bằng hình ảnh cố định không? hay tôi cần phải tính toán nó mỗi lần?

Trả lời

8

Bạn có thể sử dụng homography để trỏ điểm từ ảnh này sang ảnh khác miễn là máy ảnh không di chuyển nữa và cảnh không thay đổi.

Tôi hiểu rằng những máy ảnh đó (được hiệu chỉnh) chụp ảnh và sau đó bạn làm việc với hai ảnh đó mọi lúc. Được rồi, nếu bạn tính toán homography, thì bạn có thể chiếu tất cả các điểm bạn muốn từ cả hai hình ảnh. Bạn sẽ nhận được một số lỗi, tất nhiên, nhưng điều này là do tiếng ồn trong các hình ảnh và phi tuyến tính có ảnh hưởng đến phương pháp tuyến tính được sử dụng bởi findhomography.

Nếu bạn tiếp tục chụp ảnh bằng máy ảnh thì bạn phải tính toán lại homography cho mỗi cặp hình ảnh mới, bởi vì bạn không biết một ưu tiên cách cảnh sẽ thay đổi.

+0

Cảm ơn rất nhiều câu trả lời của bạn. – mvr950