我正在编写一个 .NET 程序,该程序允许用户通过识别图像上的特定点然后指定与这些点中的每一个相关联的真实世界坐标来注册图像。
http://www.ironbyte.ca/temp/mountain.jpg
图像配准过程还需要用户指定相机的坐标。
注册图像后,我希望能够根据它们的真实坐标在图像上绘制其他点。
我已经阅读了大量有关透视投影的内容,但我正在努力让事情正常进行。我必须承认,我的数学技能不是应有的水平,这是斗争的一部分。我被卡住的地方是试图确定焦距和到显示表面的距离:
在本文中称为查看者的位置 (e [x,y,z]):http ://en.wikipedia.org/wiki/3D_projection#Perspective_projection
我也一直在参考这篇文章:http://www.shotlink.com/Tour/WebTemplate/shotlinknew.nsf/2c47cc31e412bc4985256e6e00287832/c1743b40acf6aa03852575b7007122b0/$FILE/Plotting%203D%20ShotLink%20Data%20on%202s .pdf 从视野中提取焦距,这似乎是事先知道的,但在我的情况下不是。
所以我想我的问题是,有没有一种方法可以根据图像上已知点的位置反向确定焦距和/或视野?还是我看错了,也许有更简单的方法来实现最终目标?