Lưu ý: Điều đó phụ thuộc vào tọa độ bạn sử dụng trong hình ảnh đã thay đổi kích thước. Tôi giả sử rằng bạn đang sử dụng hệ thống dựa trên số không (như C
, không giống như Matlab
) và 0 được chuyển thành 0. Ngoài ra, tôi giả sử rằng bạn không có độ lệch giữa các tọa độ. Nếu bạn có một độ lệch, nó cũng nên được nhân lên
Trả lời ngắn gọn : Giả sử bạn đang sử dụng một hệ tọa độ trong đó u′=u2,v′=v2 , vâng, bạn nên nhânax,ay,u0,v0 với 0,5.
Trả lời chi tiết Hàm chuyển đổi điểm P trong tọa độ thế giới sang tọa độ camera (x,y,z,1)−>(u,v,S) là:
⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Trong đó (u,v,S)−>(u/S,v/S,1) , vì tọa độ là đồng nhất.
Nói tóm lại, điều này có thể được viết là
u=m1Pm3P,v=m2Pm3P
trong đóMlà tích của hai ma trận được đề cập ở trên vàmilà hàng thứ i của ma trậnM . (Sản phẩm là sản phẩm vô hướng).
Kích thước lại hình ảnh có thể được nghĩ đến:
u′=u/2,v′=v/2
Như vậy
u′=(1/2)M1PM3Pv′=(1/2)M2PM3P
Chuyển đổi trở lại dạng ma trận cho chúng ta:
⎛⎝⎜0.50000.50001⎞⎠⎟⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Mà bằng
⎛⎝⎜0.5ax0000.5ay00.5u00.5v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
Để biết thêm thông tin, hãy tham khảo Forsyth , chương 3 - Hiệu chỉnh máy ảnh hình học.