2012-10-31 55 views
5

Tôi đang làm việc về xây dựng lại 3d. Và bây giờ khi tôi xem xét một cặp hình ảnh. Tôi có một tập hợp các điểm tương ứng. và tôi có chi tiết máy ảnh của mình. Ví dụ tôi có chi tiết tiêu điểm, ma trận Xoay và Dịch (4 * 4). và tôi muốn chiếu các điểm của mình bằng 3D (triangulation). Vì vậy, theo như tôi đã biết khá thẳng về phía trước của đại số yếu tố. Nhưng tôi vẫn cần phải hiểu rõ. Có ai có ý tưởng về cách làm theo điều này không? Tôi đang làm việc với MATLAB nên tôi cần phải thực hiện điều đó! Tôi có thể là một lần nữa quá rộng hoặc bất cứ điều gì. Nhưng hãy hướng dẫn tôi!tái tạo 3D từ các hình ảnh camera được hiệu chỉnh

+0

vẫn quá rộng và mơ hồ. chúng tôi ở đây để giúp đỡ, không dạy cho bạn toàn bộ quá trình hoặc làm tất cả công việc cho bạn. –

Trả lời

0

Bạn sẽ cần tính toán ma trận máy ảnh từ các thuộc tính camera đã biết của mình; đây là một ma trận chiếu tỉ lệ vẽ bản đồ một điểm đồng nhất 3D lên tọa độ điểm ảnh 2D của bạn. (Lưu ý rằng nếu bạn muốn có độ chính xác cao, bạn cũng sẽ cần phải đo lường và sửa chữa hệ thống của bạn một cách có hệ thống, nhưng đó là chi tiết thứ hai.)

Sau đó, nhân ma trận máy ảnh với ma trận đặt ra của bạn (xoay 4x4/tranlation ma trận mà bạn đề cập) để có được một ma trận (nói T cho tổng số) mà dự án một điểm trong lựa chọn của bạn hệ tọa độ 3D vào (tọa độ sửa chữa) điểm ảnh của máy ảnh của bạn:

pixel vector Q.x = T * point P.x 
      Q.y    P.y 
      Q.z    P.z 
      Q.w    1 

pixel coordinates = (Q.x/Q.w, Q.y/Q.w) 
"pixel depth" = Q.z/Q.w 

bạn có thể đảo ngược ma trận này, và sử dụng nó để chiếu tọa độ pixel vào các tia 3D bằng cách chọn hai độ sâu: một ở vị trí camera và một điểm khác không được chọn (tốt nhất là chọn độ sâu đơn vị hoặc điểm ở vô cực). Bạn không thể mong đợi tia sáng của bạn giao cắt chính xác, nhưng bạn có thể có được một vị trí phù hợp nhất dựa trên nơi hai tia tương ứng gần nhất; nói chung, bạn có thể coi giao điểm của một số tia tùy ý là một vấn đề nhỏ nhất (lý tưởng, được điều chỉnh theo lỗi dự kiến ​​từ mỗi tia).