一、写在前面:其实自去年7月15开始,用了20天完成了这个程序的整体框架,之后就是修修补补。那时候我发现ARToolKit 配置很麻烦,所以为了方便就想写个自己的AR。然后就有了现在的这个kong_AR。开始想挣点小钱,结果发现一个人是搞不定这么多东西的,索性吧东西给出来,喜欢的拿去,不喜欢就当参考了。在此,感谢上海虚立哲的廖松大哥,无偿提供给我了一个摄像头。感谢,R'z大哥,给我提供了一些想法。同时,不得不承认,自己写的东西和ARToolKit还是有一定差距,在此只能做个抛砖引玉,希望大家继续改进,并提供分享,促进原创的发展。谢谢阅读。如果有问实在需要解决了再找我吧。QQ:563503376。
二、开发环境配置:
vc6.0(一定先安装这个,我想大家都有吧,不给地址了)
opencv1.0(http://www.opencv.org.cn/index.php/Download)
directx9b sdk(http://info.hustonline.net/software/down.aspx?id=1491)
配置教程(http://wenku.baidu.com/view/0a70223a87c24028915fc3f3.html)
opencv是图像处理及机器视觉库,主要完成模板的标定,directx9b是三维引擎,主要负责模型的加载及图像获取。记住一定要b版本的,因为只有这个版本的带了DirectShow,别的需要单独安装。当然,如果把程序读懂了,用opengl也可以,我提供了很方便的接口。
三、基本原理:和ARToolKit 类似,不过呢。我做了一些改进,需要研究的就看下程序吧。首先,需要标定下摄像头。我使用的是张正友的棋盘格标定法,这个方法简单实用。标定的目的呢只是为了得到一个摄像头的内部参数和畸变参数。然后,我需要在图像中找到模板的四个角,大概顺序是这样的,首先呢要二值化处理图片(实用opencv自带阈值方法)并进行连通域分析,然后,利用角点与周围像素之间的关系判断是否为角点,这样就可以找出角点了。接着就是角点排序了。我需要的是确定这几个角点到底是哪几个,这样才能进行下一步虚实注册。我找到四个角点,然后利用四个角点的实际几何关系,就可以得到注册需要的矩阵。如果对原理感兴趣的可以阅读些ARToolKit相关的文章,在此只是随便提一下。
四、mark制作及模型制作:mark大小为200*200,用其他工具画完后呢,要用windows自带的画图板打开之后保存到mark文件夹下,而且要旋转3个90度,每次都以jpg保存下来。模型需要用3dmax了,然后导成.x文件就可以了。
工程及源文件下载地址:(http://u.115.com/file/cliq2qzz#)
(http://code.google.com/p/kong-ar/downloads/list) |