相机的针孔模型
为了描述三维世界中的物体到二维图像中的映射关系,人们研究出了很多种相机模型,针孔模型是其中最简单的一种模型。
1. 小孔成像原理
在初高中物理课上,介绍光沿直线传播的时候,应该做过一个小孔成像的实验:在一个不透光的板子中间打一个小孔,在板子的一侧放置一个点燃的蜡烛, 另一侧放置一个白板。适当的调整蜡烛和白板到小孔的距离,就可以在白板上看到一个倒立的实相。固定白板到小孔的位置,由近到远的移动蜡烛的位置, 实相将逐渐变小。根据光沿直线传播的原理,我们有如下图所示的相似三角形。
![]() |
图1 小孔成像相似三角形 |
假设蜡烛的高度是\(X\),它到小孔的距离是\(Z\);用于成像的白板到小孔的距离通常被称为焦距,用符号\(f\)表示,所成的像高度为\(X'\)。 那么根据上图所示的相似三角形关系,我们就可以写出真实的物体到相平面的映射关系:
$$ \begin{equation}\label{f1} \frac{Z}{f} = \frac{X}{X'} \end{equation} $$在固定焦距\(f\)不变的情况下,我们可以得到像高度:
$$ \begin{equation}\label{f2} X' = f\frac{X}{Z} \end{equation} $$针孔相机模型就是建立在上式(\(\ref{f2}\))的小孔成像原理上的,只是相平面从一维拓展到了二维而已。读者可能有个疑问,小孔成像得到的可是一个倒立的像, 而我们的相机拍摄出来的照片却都是正的。这个问题对于计算机而言根本不值一提,因为翻转个照片只是举手之劳。