发 帖  
原厂入驻New

[经验] iTOP4412开发板-QtE-opencv-UVC摄像头测试文档

2020-8-25 10:41:27  533 Linux 开发板
分享
1
本文档介绍的是在QtE系统环境下迅为iTOP4412 UVC摄像头opencv程序实验调试步骤。我们使用的是4412全功能底板。提供opencv源码“opencv-2.4.9.zip”,uvc摄像头qt源码“camera_opencv.tar.gz”以及opencv编译好的库文件“opencv-2.4.9_arm.tar.gz”
OPENCV移植
我们将文件中提供的“opencv-2.4.9.zip”即opencv源码包解压,并将其通过ssh软件移至ubuntu下,作者将该文件放入了“/home/work2/cwork/opencv”下,如下图所示。
110826btyysb3trrr5zqpj.png
OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。
ubuntu下安装cmake比较简单,使用命令“apt-get install cmake”,如下图所示。
110826k3xfged46db2ebdx.png
        使用命令“cmake --version”查看版本,测试是否安装成功。如下图所示。
110826w0h9jml8ah0jph2p.png
        我们使用命令“cd opencv-2.4.9/”进入源码目录。如下图示。
110826j808ki6h87096h6u.png
        使用命令“cmake-gui”打开cmake的gui界面,开始进行配置。如下图示所示。
110826idlzq6yqhyh63a64 (1).png
我们在“where is the source code”中填入电脑中opencv源码的位置,“where to build the binaries”填入生成make编译文件的位置,然后点击configure按钮。如下图所示。
110826p8znq3l0dlqz0l7y.png
选择最后一项,然后点击next,如下图所示。
110826edkkndggdqkdt0dt.png
Operating System 选择目标系统“Linux”,Compilers中选择交叉编译器的gcc和g++,“/usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-gcc”“/usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-g++”,Target Root选择交叉编译器的路径“/usr/local/arm/4.4.1”,include Mode选择“search only in target root”。点击finish。如下图所示。
110826p8znq3l0dlqz0l7y.png
.此时主界面如下图所示,这时Cmake会读取程序的一些配置信息,可以再下图红框中对每一个编译选项进行修改,将CMAKE_INSTALL_PREFIX改成你想要的路径,作者改成了“/usr/local/opencv-2.4.9”,这里去掉WITH_TIFF,WITH_CUDA及WITH_GTK。如下图所示。
110826myo7lzlyyq7399l9.png
最后点Generate,在编译路径/opt/opencv_arm下就生成了Makefile。关闭后我们使用“cd /opt/opencv-arm/”命令进入“/opt/opencv_arm”,在执行Makefile之前需要修改CMakeCache.txt文件的194行。使用命令“vi CMakeCache.txt”编辑文本。如下图所示。
110826l2rpcku2u92b9pui.png
跳转至194行。将“CMAKE_EXE_LINKER_FLAGS:STRING=' '”改为“CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl”如下图所示。
110826igowsqw25giwq7fs.png
保存退出后,使用“make”编译。编译部分截图如下所示。
110826pxgff3gaiglmtm88.png
编译完成之后。使用指令“make install”,部分截图如下所示。
110826ip9eiipe24splc9e.png
我们可以在“/usr/local/opencv-2.4.9/”目录下看到编译生成的库文件。至此,移植工作基本完成。
110826eqeaqqtq5cqteq2v.png
UVC程序编译
我们把文件夹中带的例程源码“camera_opencv.tar.gz”通过ssh拷贝到ubuntu下,如下图所示。
110826btyysb3trrr5zqpj.png
使用命令“tar -xvf camera_opencv.tar.gz”解压程序源码。如下图所示。
110826qmvf9f1fipwvchvv.png
使用命令“cd camera_opencv/”进入。然后使用命令“/opt/qt-4.7.1/bin/qmake”“make”编译程序,编译完成即可看到程序,如下图所示。
110827ty5n35tr59rl9d6l.png
生成文件系统
我们使用命令“ cd /home/topeet/Linux+QT/root/”进入qt文件系统目录。如下图所示。
110827jlikhh8urshpsu1p.png
使用命令“cp -r /usr/local/opencv-2.4.9/ ./usr/local/”将opencv库文件拷贝到qt文件系统中,使用命令“cp -r /home/work2/cwork/opencv/camera_opencv/camera_opencv topeet/”将程序拷贝到文件系统中,使用命令“ cp -r /opt/opencv-arm/lib/* ./lib/”动态库拷贝到开发板中。如下图所示。
110827xzktp76p26lkkdp7.png
我们使用命令“cd lib/”进入“lib”文件夹。使用命令“cp -r /usr/local/arm/4.4.1/arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12 ./”将“libstdc++.so.6.0.12”拷贝到当前目录(自带的libstdc++.so.6.0.10不支持GLIBCXX_3.4.11,运行程序会报错),使用命令“”删除旧连接文件,使用命令“ln -s libstdc++.so.6.0.12 libstdc++.so.6”创建链接。如下图所示。
110827s1jzn0z404mm6mt6.png
使用命令“cd ../../”返回上一级目录。使用命令“make_ext4fs -s -l 314572800 -a root -L linux system.img root”生成文件系统镜像。如下图所示。
然后将文件系统烧写到开发板上(QT系统)。
程序测试
开发板上电启动后,使用命令“ps”查看当前进程,并kill fluidlauncher。如下图所示。
110827agdrcqv2q2dgqnjr.png
使用命令“cd /topeet/”进入程序存放目录。使用命令“./camera_opencv -qws &”即可运行程序,此时屏幕显示uvc摄像头浏览画面。
110827tvp1ebcvumvq1gig.png

110827ihqbmq500srbuqm0.png

相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表