在线问答
直播中

郎中令2000年

10年用户 88经验值
擅长:嵌入式技术 模拟技术 控制/MCU
私信 关注

【OK210试用体验】之(六)—— 交叉编译和移植OpenCV 2.4.9 (1)

本帖最后由 郎中令2000年 于 2015-12-6 10:45 编辑

    在Ubuntu 12.04上安装好OpenCV 2.4.9,并实现图像采集之后(详细步骤见https://bbs.elecfans.com/jishu_503398_1_1.html),接下来的工作就是交叉编译OpenCV,将编译得到的.so库文件拷贝到OK210中,实现嵌入式的图像采集。本帖开始正式尝试移植工作。           
    硬件平台:Windows7 64 bit + USB摄像头C270 + OK210
    软件平台:VMware8.0.2 + Ubuntu12.04 + arm-linux-gcc4.3.2 + cmake2.8.7+OpenCV2.4.9

    一、安装cmake-gui
    OpenCV 2.0之后的版本,必须使用CMake创建Makefile
    在终端输入cmake-gui之后,如果提示未安装,可以通过以下指令进行安装:
  1. $ sudo apt-get install cmake-qt-gui
    安装好之后,可以通过 cmake --version指令查看cmake的安装版本,楼主的为cmake 2.8.7
    2015-11-25_145556.jpg

    二、配置arm-opencv,生成makefile
    首先,需要在个人目录下创建交叉编译文件夹arm-opencv。楼主的OpenCV源文件位于/home/xwp/目录下,故将arm-linux文件夹也创建在该目录下
    创建好之后,首先切换至root用户,运行cmake-gui,照以下步骤进行配置:
    (1)选择源代码目录:/home/xwp/opencv-2.4.9
            (2)选择Build目录:/home/xwp/arm-opencv
            (3)点击Configure
   
            (4)保持generator为Unix Makefiles
            (5)选择Specify options for cross-compiling
            (6)点击Next   
            (7)Operating System填写arm-inux(必填),version填写4.3.2(可以不填)
            (8)C Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-gcc
            (9)C++ Compilers填写/usr/local/arm/4.3.2/bin/arm-linux-g++
           (10)程序库的Target Root填写/usr/local/arm/4.3.2/
   
           (11)点击Finish,即可开始配置


20151122.jpg

2015-11-22_162235.jpg

2015-11-22_162344.jpg

    三、修改cmake的配置
    在完成操作(11),待cmake结束工作,会发现cmake一片红,这时候需要进行一些配置,重新点击configure
2015-11-25_163453.jpg
    楼主在CSDN博客上面参考了大量的配置例程,但是经过实践,几乎没有能够100%编译的,所以楼主认为在配置方面与个人的虚拟机版本、opencv版本和cmake版本都相关。所以,楼主认为最好的编译方法就是尝试,通过编译过程中出现的错误来进行反复配置和修改,最后肯定可以成功的。楼主的cmake配置修改工作如下:

    (1)加上BUILD_PNG和BUILD_JPEG

    (2)去掉WITH_TIFF,WITH_OPENEXR和BUILD_EXAMPLES

    (3)修改CMAKE_BUILD_TYPE为Release

    (4)修改CMAKE_INSTALL_PREFIX为/usr/local/arm/opencv

    然后重新Configure,观察红色是不是已经全部消失了!如果没有就继续Configure,直到没有红色,然后点击Generate,生成makefile文件。
   
    四、修改编译配置
    进入最初创建的arm-opencv文件夹,找到CmakeCache.txt文件,对其进行修改。
    找到
  1. //Flags used by the linker.
  2. CMake_EXE_LINKER_FLAGS:STRING='  '
    修改为
  1. //Flags used by the linker.
  2. CMake_EXE_LINKER_FLAGS:STRING= -lpthread -lrt -ldl
   
    五、编译
    修改完,保存。然后在终端编译
  1. # make
2015-11-22_204429.jpg

    这是楼主最后编译成功的截图。编译总是最消耗时间的,出现错误就要认真查阅,楼主会在最后面附上参考文档,相信有楼主的帖子和参考文档,你也可以编译成功。
   
    六、安装
  1. # make install
    安装完成以后,进入/usr/local/arm/opencv/lib目录中,就可以看到经过交叉编译之后的OpenCV库了(绿色字体显示)
2015-11-22_204940.jpg

   本篇帖子的主要内容就到这里了,接下来就是把这些库文件拷贝到OK210开发板子中,进行摄像头图像采集和显示的测试了。根据楼主查阅的资料,知道ARM对opencv的libopencv_highgui.so库不是完全支持,摄像头捕捉函数无法使用。如果测试结果真的是这样,楼主就要用V4L2进行曲线救国了
   
    后话:好久没更帖子了,一篇帖子下来一个下午就没了。楼主这个月13号刚晋升奶爸,应该是喜大普奔的好事,但个人生活因为小家伙的来临变得一塌糊涂,每天总有忙不完的事儿,还望电子发烧友的管理员和各位发烧友见谅~

    最后,附上楼主本帖的参考文献:
           1、http://blog.csdn.net/luotuo44/article/details/8958990
           2、http://blog.csdn.net/b5w2p0/article/details/8976665
           3、http://blog.csdn.net/jiebaoabcabc/article/details/22935185
















    arm_opencv_lib.zip (2015-11-25 22:09 上传)

    6.22 MB, 下载次数: 57

    arm-opencv2.4.9库

回帖(5)

竹林海宝

2017-3-6 15:12:11
楼主看到了,恳请能回复我
我在执行cmake-gui 出现如下的提示,该怎么解决了?这个问题困扰我一个星期了,看了好多博客,感觉大家执行cmake-gui就直接出现界面,但我的出现如下提示:
cmake-gui: cannot connect to X server

要安装什么软件吗?具体怎么安装,以前是学单片机的,刚接触linux。请教了
举报

郎中令2000年

2017-3-13 14:14:10
确实用cmake-gui就可以出现界面了。
(1)你可以先彻底卸载cmake:$ sudo apt-get autoremove --purge cmake-qt-gui
(2)重新安装cmake:$ sudo apt-get install cmake-qt-gui
(3)安装后检查下版本信息:$ cmake --version
(4)切换至root账户,然后运行#cmake-gui
举报

郎中令2000年

2017-3-13 14:14:36
引用: 竹林海宝 发表于 2017-3-6 15:12
楼主看到了,恳请能回复我
我在执行cmake-gui 出现如下的提示,该怎么解决了?这个问题困扰我一个星期了,看了好多博客,感觉大家执行cmake-gui就直接出现界面,但我的出现如下提示:
cmake-gui: cannot connect to X server

确实用cmake-gui就可以出现界面了。
(1)你可以先彻底卸载cmake:$ sudo apt-get autoremove --purge cmake-qt-gui
(2)重新安装cmake:$ sudo apt-get install cmake-qt-gui
(3)安装后检查下版本信息:$ cmake --version
(4)切换至root账户,然后运行#cmake-gui
举报

lee_st

2017-4-18 13:54:18
向楼主学习一下下,,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分