您的位置:首页 > 运维架构

OpenCV移植到ARM(4) - 完结版

2017-11-30 10:53 323 查看
        经过一系列的准备工作,接下来就将opencv应用程序在arm板子上跑起来。

        启动板子进入Linux系统,首先将上一步交叉编译输出的opencv库拷贝到板子的/lib目录下,可以通过U盘,TF卡等外接设备挂载拷入,但这个拔来拔去辣是相当的麻烦!还是通过NFS服务共享来的快,这边通过NFS挂载来拷贝(注:要支持NFS服务,不但需要在Ubuntu上安装NFS服务器,安装过程网上有许多,自行搞定。而且需要配置Linux内核支持NFS服务,可以参考这篇文章配置Linux内核来支持NFS服务),NFS服务器路径为/nfs目录。

        将opencv交叉编译库移动到该NFS服务器路径下,如下图:



        到此,opencv库已经移植到了NFS服务器目录,接下来通过板子挂载服务器,然后取走opencv库到板子的/lib目录下,如下图:



这时候通过同样的共享方式,将上次写好ARM架构的opencv应用程序拷贝到板子运行测试,如下图:



        现在提示找不到libjpeg库,很简单,把该库文件也拷贝到板子的/lib目录下即可。这个库文件就在在《OpenCV移植到ARM(2)》这篇交叉编译第三方库时指定目录的lib目录下,我这边也就是/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/下的lib目录,如下图:



        把这些库文件都拷贝到板子的/lib目录即可,再次运行opencv测试程序,如下图:



        这时候又会提示缺少libpng库,同样的方法,去该目录下拷贝对应的库到板子上。其实还是会报错说缺少XXX库文件,同理,它提示缺少什么,你就给她什么,经过几番追求,就能追到手,这里略过,最后把该拷贝的库都考进去后,再次运行,如下图:



        这个时候还是会报错,但是这个错是程序运行时候的错误了,这是因为没有GTK,跑不了UI,而我们的代码中使用了opencv的窗口创建和显示函数,所以报错,就是以下2句代码:

cv::namedWindow("shuaige");
cv::imshow("shuaige",image);
所以,只能暂时运行无界面的opencv程序了···,或者你可以把结果图片保存到本地,然后将该图片拷贝回电脑进行图片查看是不是正确的结果!

        不过没有界面怎么行,都叫图像处理了,所以决定将Qt也在ARM板子上跑起来,经过一系列的努力,下图就是Qt+OpenCV在板子上跑的ORB特征点匹配算法的成果,嘻嘻!



        OK,大功告成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息