一、原理
1.1 针孔照相机模型
在相机模型中,针孔相机是相对简单而常用的模型,且具有足够的精确度。简单的说,针孔相机模型就是把相机简化成小孔成像,图一是从照相机中心前面画出图像平面的图解。f标注的距离是焦距。由图像坐标轴和三维坐标系中的x轴和y轴对齐平行的假设,我们可以得出针孔照相机的投影性质。照相机的光学坐标轴和Z轴一致,该投影几何可以简化成相似三角形。在投影之前通过旋转和平移变换,对该坐标加入三位点,会出现完整的投影变换。
图一:
1.2 照相机标定
- 标定方法:需要准备一个平面矩形的标定物体(一本书即可)、用于测量的尺子、一个平面。以下是具体操作步骤:
(1)测量选定矩形标定物体的边长dX和dY;
(2)将照相机和标定物体放置在平面上,使得照相机的背面和标定物体平行,同时物体位于照相机图像视图的中心。为取得良好的对齐效果,需要调整照相机或物体。
(3)测量标定物体到照相机的距离dZ;
(4)拍摄一幅图像来检验标定物体的边是否和图像的行列对齐;
(5)使用像素数来测量标定物体图像的高度和宽度dx,dy
根据相似三角形来求得焦距:
fx = dx/dX * dZ
fy=dy/dY* dZ
获得焦距需要原代码中的函数 my_calibration(sz) 中的对应的位置替换成自己的图
上图箭头所指方向为分辨率。将分辨率替换下图两箭头分别所指数据。
以上就设置完我们的相机标定矩阵了,接着进入下一步。
1.3 增强现实
增强现实是将物体和相应信息放置在图像数据上的一系列操作的总称。接下来我们建立一个简单的增强现实的例子。其中,我们会用到两个工具包:PyGame和PyOpenGL
注意:安装OpenGL时不能直接在命令行pip install 这是因为我们的机器大部分都是64位的,但是通过pip install opengl 安装的版本默认为32位的。因此要在网站安装。
下载网址:https://www.lfd.uci.edu/~gohlke/py