本文将尝试对照相机进行建模并有效地使用这些模型。
(该实验参书籍:Python计算机视觉编程 第四章)
(代码为书上源码)
1.1 照相机标定
标定照相机是指计算出该照相机的内参数。其标准方法是,拍摄多幅平面棋盘模式的图像,然后进行处理计算。
这里将要介绍一个简单的照相机标定方法。大多数参数可以使用基本的假设来设定(正方形垂直的像素,光心位于图像中心),比较难处理的是获得正确的焦距。对于这种标定方法,需要准备一个平面矩形的标定物体(例如书本)、用于测量的卷尺和直尺,以及一个平面。
下面是具体操作步骤:
①测量你选定的矩形标定物体的边长dX和dY;
②将照相机和标定物体放置在平面上,使得照相机的背面好标定物体平行,同时物体位于照相机图像视图的中心,你可能需要调整照相机或者物体来获得良好的对齐效果;
③测量标定物体到照相机的距离dZ;
④拍摄一副图像来检验该设置是否正确,即标定物体的边要和图像的行和列对齐;
⑤使用像素数来测量标定物体图像的宽度和高度dx和dy。
利用下面的公式可获得焦距:
fx=dx/dXdZ , fy=dy/dYdZ
1.2 以平面和标记物进行姿态估计
如果图像中包含平面状的标记物体,并且已经对照相机进行了标定,那么就可以计算出照相机的姿态(旋转和平移)。
使用平面物体作为标记物,来计算用于新视图投影矩阵的例子。
将图像的特征和对齐后进行标记匹配。
用RANSAC计算出的单应性矩阵用于计算照相机的姿态。
2.1 增强现实具体实例
实现增强现实我们需要用到PyGame和PyOpenGL两个工具包。(下载地址:ht