2011-09-17 34 views
6

Tôi đã cố gắng tìm ra cách để có một homography giữa hai máy bay và chuyển đổi nó thành một biến đổi projective. Matlab thực hiện điều này tự động, nhưng tôi đã cố gắng tìm hiểu cách MATLAB thực hiện chuyển đổi.Homography để chuyển đổi dự án

+0

Bạn đang nói đến chức năng MATLAB nào? – Jacob

+0

Tôi đã tính toán homography bằng cách sử dụng một biến đổi tuyến tính trực tiếp. Tôi đã tự hỏi làm thế nào maketform ('projective', homographyMat) hoạt động. Cảm ơn! –

Trả lời

2

Một homography là một biến đổi projective ánh xạ đường vào dòng, giữ tỷ lệ chéo, nhưng không giữ song song hoặc magnitudes tương tự khác (góc độ, khoảng cách, vv). Một homography có thể được thể hiện như một ma trận 3x3 đồng nhất, và tính theo nhiều cách (thực sự, nhiều) khác nhau tùy theo vấn đề của bạn.

Cách thông thường nhất là xác định 4 điểm tương ứng giữa hai mặt phẳng và sử dụng Biến đổi tuyến tính trực tiếp (DLT). Ngoài ra còn có nhiều triển khai của DLT. Nếu bạn đã quen thuộc với OpenCV, bạn có thể dễ dàng có được ma trận homography như vậy bằng cách sử dụng cv::findHomography (http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=findhomography#findhomography).

Nói chung, tôi khuyên bạn nên xem qua cuốn sách "Nhiều chế độ xem hình học" từ Hartley & Zisserman, giải thích chi tiết khái niệm về đồng tính trong ngữ cảnh của thị giác máy tính.

3

Bạn có thể nhìn vào mã nguồn trong hộp công cụ \ images \ images \ maketform.m

Ít nhất trong trình soạn thảo bạn có thể tới đây bằng cách nhấn F4 vào tên hàm.

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