下载好 OpenCV 2。3。1 版本库后,需要将其内嵌进 VS2008(VC++6。0、VS2010、 VS2012 也可)中。一个新的工程首先需要对 OpenCV 相关文件进行载入,如将。dll 文件、。tbb 文件所在的本地目录加载到 PATH 环境变量中,并且在链接时需要将 用到的库文件进行外部链接。链接的库文件的有 debug 类型和 release 类型之分, 在开发和调试阶段应使用 debug 库,这些库中在编译时会加入调试信息,方便代 码调试;而开发完成后需要发布最终版本时则需选择 release 版本的链接文件, 这样会移除库中的调试信息,降低应用程序的大小,提高运行速度。
2。2。2Linux 平台下 OpenCV 库的使用
在 Linux 平台上使用 OpenCV 首先需要安装和编译。将下载好的安装包解压 后在最顶层目录使用 make 命令即可编译。但由于树莓派硬件资源不高,主频较 低,若直接在树莓派上编译库需要大约两个小时,而在一般的 PC 上编译只需要 十多分钟。故建议在 PC 上先编译好后再拷贝到 Linux 下。
Linux 下的集成开发环境一般选用 Qt,但更常用的方式是使用 Make 命令编 译。使用 Make 命令编译需要编写 Makefile 文件,在此文件中加入编译选项和库 文件名和路径即可。值得注意的是使用 Make 命令需要将 Makefile 文件与 C 或 C++源文件放在同一文件路径下,否则需要在 Makefile 中特别指定源文件路径。 编译好的文件在终端中执行,运行结果与 Windows 下结果一致。
2。3 硬件平台的选取
本系统选用的硬件平台为树莓派 2B 型。树莓派是一款基于 ARM 的卡片式电
脑,大小如同一张信用卡,自 2012 诞生以来就被许多发烧友推崇,现在已经发 展到了第三代。相比上代产品来说,树莓派 2B 型号称 CPU 单线程性能提升 1。5 倍,Sunspider 跑分提升 4 倍,基于 NEON 的多核视频解码速率提升 20 倍,SysBench 整体多线程 CPU 分数提升 6 倍。
它以 Micro SD 卡作为内存硬盘,内置 Linux 系统。片上搭载博通 BCM2836 四核 ARM-A7 核心,带 VideoCore IV 双核 GPU,GPU 提供开放式 GL ES 2。0、 硬 件 加 速 OpenVG 和 1080p30 H。264 高 端 解 码 , 可 以 实 现 1Gpixel/s 、 1。5Gtexel/s 或 24GFLOP,并提供纹理过滤和 DMA 基础架构;ARM 芯片主频为
900MHz,1GB LPDDR2 内存,支持 HDMI 接口输出 [4]。作为一款低成本的嵌入式平 台,树莓派已经发展得较为成熟,且运行稳定,是理想的 Linux 测试平台。
2。4 摄像头的选取
图(2-1) 树莓派板卡
树莓派支持的摄像头常见的有两种:USB 免驱摄像头和树莓派官方标准的 15 针 CSI 摄像头。
USB 免驱摄像头使用方便,将 USB 接口插入树莓派得接口中即可。但树莓派 的 USB 口标准输出电流最大只有 200mA,USB 摄像头需求的供电电流较大,在特殊 情况下只依靠树莓派得 USB 端口供电可能不足,需要对摄像头进行外部供电。
CSI 摄像头驱动集成在了树莓派官方提供的 Debian 系统内,使用时需要在虚 拟终端中输入配置命令 raspi-config 调出配置选项,选择使能 CSI 摄像头选项 后方可使用。但在 OpenCV 库中的驱动不支持官方 CSI 摄像头,需要额外安装 H4L2 驱动。
CSI 摄像头对比 USB 摄像头帧率较高,工作电流低,但其内置驱动白平衡处 理较差,对光线敏感,且在 OpenCV 下驱动配置麻烦。综上所述,本系统选用 USB 免驱摄像头。
图(2-2) 常见摄像头 (a)树莓派官方摄像头 (b)USB 免驱摄像头
2。5 小结
本章主要介绍了系统的软件库和硬件选型。软件库硬件设备的选取直接关系 到系统的稳定性和可靠性,本系统选用的硬件设备运行稳定,能支持系统正确有 效地运行。