หมายเหตุ: ขึ้นอยู่กับพิกัดที่คุณใช้ในภาพที่ปรับขนาดแล้ว ฉันสมมติว่าคุณกำลังใช้ระบบ zero-based (like C
, like Matlab
) และ 0 ถูกแปลงเป็น 0 นอกจากนี้ฉันยังสมมติว่าคุณไม่มีความเอียงระหว่างพิกัด หากคุณมีความเบ้ก็ควรจะถูกคูณด้วย
คำตอบสั้น ๆ : สมมติว่าคุณกำลังใช้ระบบพิกัดที่u′=u2,v′=v2ใช่คุณควรคูณx,Y,U0,V00.5ax,ay,u0,v0
คำตอบโดยละเอียดฟังก์ชั่นที่แปลงจุดPในพิกัดโลกเป็นพิกัดกล้อง (x,y,z,1)−>(u,v,S)คือ:
⎛⎝⎜ax000ay0u0v01⎞⎠⎟⎛⎝⎜⎜⎜R11R21R310R12R22R320R13R23R330TxTyTz1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xyz1⎞⎠⎟⎟⎟
โดยที่(u,v,S)−>(u/S,v/S,1)เนื่องจากพิกัดนั้นเป็นเนื้อเดียวกัน
ในระยะสั้นนี้สามารถเขียนเป็น
u=m1Pm3P,v=m2Pm3P
ที่Mเป็นผลิตภัณฑ์ของทั้งสอง matrixes ดังกล่าวข้างต้นและmiเป็นแถว i'th ของเมทริกซ์MM(ผลิตภัณฑ์นี้เป็นผลิตภัณฑ์สเกลาร์)
การปรับขนาดรูปภาพอีกครั้งสามารถนึกถึง:
u′=u/2,v′=v/2
ดังนั้น
u′=(1/2)M1PM3Pv′=(1/2)M2PM3P
การแปลงกลับเป็นเมทริกซ์ให้:
⎛⎝⎜0.50000.50001⎞⎠⎟⎛⎝⎜ax000aY0ยู0โวลต์01⎞⎠⎟⎛⎝⎜⎜⎜R11R21Rวันที่ 310R12R22R320R13R23R330TxTYTZ1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xYZ1⎞⎠⎟⎟⎟
ซึ่งมีค่าเท่ากับ
⎛⎝⎜0.5 ax0000.5 aY00.5 คุณ00.5 โวลต์01⎞⎠⎟⎛⎝⎜⎜⎜R11R21Rวันที่ 310R12R22R320R13R23R330TxTYTZ1⎞⎠⎟⎟⎟⎛⎝⎜⎜⎜xYZ1⎞⎠⎟⎟⎟
สำหรับข้อมูลเพิ่มเติมอ้างอิงForsythบทที่ 3 - การปรับเทียบกล้องเรขาคณิต