学会在嵌入式Linux下使用OpenCV

1).简介
opencv的全称是open source computer vision library,是一个跨平台的计算机视觉库。opencv是由英特尔公司发起并参与开发,以bsd许可证授权发行,可以在商业和研究领域中免费使用。opencv可用于开发实时的图像处理、计算机视觉以及模式识别程序,以解决人机交互,人脸识别以及动作跟踪等领域的问题。
本文所采用的测试平台为来自toradex的arm计算机模块平台colibri imx6dl搭配其对应的开发载板colibri eva board.
2.准备
a). colibri imx6dl系统通过载板x18连接lvds lcd显示屏。
b). usb camera用于后续opencv演示程序测试。
c). colibri imx6dl系统使用toradex linux release v2.6.1,不过原生没有包含opencv支持,可以通过下面两种方式集成opencv。
./在colibri imx6dl官方linux release系统上面,通过opkg软件管理器在线安装
------------------------------
root@colibri-imx6# opkg update
root@colibri-imx6# opkg install opencv
root@colibri-imx6# opkg install opencv-apps
------------------------------
./基于toradex openembedded环境添加opencv相关并重新编译,好处可以更方便的定制所需安装的包,如添加ffmpeg/lib**支持。建立环境和编译相关请参考这里,涉及到添加opencv支持的修改请参考下面两个patch文件,然后根据这里说明将重新编译好的image文件更新到colibri imx6dl模块上面去。
------------------------------
//local.conf文件添加opencv支持
https://github.com/simonqin09/opencv_patch/blob/master/local.conf.opencv.patch
//修改opencv recipte添加ffmpeg/lib**和multicore(tbb)支持,不过请注意lib**是商业授权,这里只作为测试使用,不能直接用于商业发布。
https://github.com/simonqin09/opencv_patch/blob/master/opencv_2.4.bb.patch
//修改opencv bitbake recipt添加gstreamer支持
https://github.com/simonqin09/opencv_patch/blob/master/opencv_2.4.bbappend.patch
// bitbake image
toradex-ubuntu$ bitbake angstrom-lxde-image
//bitbake toolchain
toradex-ubuntu$ bitbake -c populate_sdk angstrom-lxde-image
------------------------------
d).在开发主机安装上面生成的toolchain,可以放到任意位置,本文为了后续操作方便,将安装好的sdk目录下的”sysroots”目录链接到”/home/username/sysroots”下面。
------------------------------
toradex-ubuntu$ ./angstrom-glibc-x86_64-armv7at2hf-vfp-neon-v2015.12-toolchain.sh
toradex-ubuntu$ ln –s sdk folder/sysroots /home/username/sysroots
------------------------------
3). opencv demo演示
a).本文使用的演示程序是修改于opencv文档中的基于haar cascades级联分类器的人脸识别demo,源代码如下
------------------------------
https://github.com/simonqin09/opencv/blob/master/facedetect.cpp
//源代码中需要对应修改“haarcascade_frontalface_alt2.xml”文件在colibri imx6的放置路径,这里使用的是”/home/root”
//源代码中需要对应修改usb摄像头对应的设备名字,本文是”/dev/video0”,在你的环境可以通过”v4l2-ctl –list-devices”命令来确定
------------------------------
b).对应的makefile如下,如果你的toolchain安装在不同目录,要对应修改sysroots目录路径
https://github.com/simonqin09/opencv/blob/master/makefile
c).将编译好的可执行文件以及下面地址的“haarcascade_frontalface_alt2.xml”文件都复制到colibri imx6dl同一目录下面,文本使用目录”/home/root”
d).执行程序,当有人脸正面出现在摄像头内就会显示识别出的人脸数目
----------------------------
root@colibri-imx6# ./facedetect
----------------------------
4).总结
本文基于nxp imx6嵌入式平台测试了opencv的基本部署和运行,另外虽然opencv用c++编写,也支持很多其他语言的接口甚至使用cuda的gpu接口。

分析同步buck电路
预测苹果新款MacBook Pro将会搭载M1X处理器
一加7Pro充电测试 表现十分不错
如何在不断增长的HEV/EV市场中优化您的汽车HVAC设计
电动机正反转工作原理解析
学会在嵌入式Linux下使用OpenCV
骁龙835+曲面屏?小米6三月见!
renoace和一加7T哪款值得入?谁才是超级玩家
大联大推出NFAM5065L4B智能功率整合模块的4KW 650V工业电机驱动方案
瑞萨电子推出新型全塑封型数字 DC/DC PMBus电源模块系列
会议一体机提供一站式智能高效行业解决方案
抖动概念的理解几个需要注意的方面
基于单片机与FPGA的等精度频率测量和IDDS技术设计方案的实现
iPhone6s:讲不出再见!
物联网对于人类社会有什么影响
爱立信:2025年全球5G用户数量将达28亿,移动宽带技术将达到82%
中国光伏市场:靓丽出口难掩国内隐忧
FPGA开发中按键消抖与单脉冲发生器电路
AGP总线知识讲解
“大国重器”硬X射线自由电子激光装置2025年建成