本帖最后由 郎中令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之后,如果提示未安装,可以通过以下指令进行安装:- $ sudo apt-get install cmake-qt-gui
安装好之后,可以通过 cmake --version指令查看cmake的安装版本,楼主的为cmake 2.8.7。
二、配置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,即可开始配置
三、修改cmake的配置
在完成操作(11),待cmake结束工作,会发现cmake一片红,这时候需要进行一些配置,重新点击configure。
楼主在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文件,对其进行修改。
找到- //Flags used by the linker.
- CMake_EXE_LINKER_FLAGS:STRING=' '
修改为- //Flags used by the linker.
- CMake_EXE_LINKER_FLAGS:STRING= -lpthread -lrt -ldl
五、编译
这是楼主最后编译成功的截图。编译总是最消耗时间的,出现错误就要认真查阅,楼主会在最后面附上参考文档,相信有楼主的帖子和参考文档,你也可以编译成功。
安装完成以后,进入/usr/local/arm/opencv/lib目录中,就可以看到经过交叉编译之后的OpenCV库了(绿色字体显示)。
本篇帖子的主要内容就到这里了,接下来就是把这些库文件拷贝到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