Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / OpenCV在Hisi上的移植总结

经本人尝试opencv2.4.9在arm-hisiv200-linux-g++ 可以编译通过,在arm-hisiv100-linux-g++ 下编译会出现错误。本文分别介绍在arm-hisiv200-linux-g++ 和arm-hisiv100-linux-g++ 下opencv的编译方式。一、arm-hisiv200-linux-g++交叉编译链Ubuntu12.04OpenCV-2.4.91、在/home下新建文件夹# mkdir opencv249把下载的OpenCV-2.4.9.tar.bz2解压到/home/opencv 目录下2、然后在home/opencv  新建一个 hisiv200-build 文件夹,作为CMake编译hisi版本的工作目录# mkdir hisiv200-build3、在终端里调出CMake gui界面:# cmake-gui(1)在configure时选择CMAKE_SYSTEM_NAME:hisiv-linuxC:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-gccC++:选择/opt/hisi-linux/x86-arm/arm-hisiv200-linux/target/bin/arm-hisiv200-linux-g++修改安装目录:CMAKE_INSTALL_PREFIX:/opt/2.4.9-arm-hisiv200(2)  opencv编译OPENEXR时要用到libImath.so,在配置界面要把build_opencvxr和with_opencvxr去掉,否则会出现这个问题。/usr/lib/libImath.so: could not read symbols: File in wrong formatcollect2: ld returned 1 exit statusmake[2]: *** [lib/libopencv_highgui.so] 错误 1make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] 错误 2 make: *** [all] 错误 2还要去掉build_opencv_ocl和with_opencl,否则会出下面的错误../../lib/libopencv_ocl.so:undefined reference to "dlopen"还要去掉tiff库的编译(3)修改默认安装路径,默认安装目录为/usr/local,但我想对它统一归类,所以我在opt/目录下新建了一个opencv249文件夹,在Cmake-gui里修改CMAKE_INSTALL_PREFIX变量改为/opt/opencv249/hisi(4)修改hisiv200_build目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt主要opencv编译OPENEXR时要用到libImath.so,所有我就把那个取消了,然后编译就没出现过这个问题4、进行编译:make5、make install这样就移植完成二、arm-hisiv100-linux-g++交叉编译链Ubuntu10.04OpenCV-2.4.2步骤与上述一致。三、配置编译环境1、进入/opt/opencv249/hisi目录下,建立pkgconfig目录,进入目录建立hisiv200-opencv249.pc文件 #gedit hisiv200-opencv249.pc2、编辑库连接配置文件#gedit /etc/ld.so.conf.d/hisiv200-opencv249.conf输入/opt/opencv249/hisi/lib然后启用配置sudo ldconfig3、配置PKG_CONFIG_PATH#gedit /etc/bash.bashrc在文档最后加入export PKG_CONFIG_PATH=/opt/opencv249/hisi/lib:$PKG_CONFIG_PATH4、测试#pkg-config --libs --cflags hisiv200-opencv249会显示相应的头文件和库即可四、编译程序注意:embedded linux不支持OpenCV自己的Highgui,所以不能在目标板上使用cvNameWidow(),cvWaitKey(),cvShowImage()等显示函数,但是可以利用里面的cvLoad()等函数。本人写了一个脚本文件,与要编译的文件放在同一目录下,直接./ ******,就可以编译C和C++源文件注意:要在该脚本文件中加上-static。否则在hisi上无法运行。如果出现cv异常之类的错误,就是使用了cvNameWidow(),cvWaitKey(),cvShowImage()等显示函数相关C和C++源文件与hisiv200-opencv249.pc,文件下载:--------------------------------------分割线 --------------------------------------免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2015年资料/2月/3日/OpenCV在Hisi上的移植总结/下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm--------------------------------------分割线 --------------------------------------Ubuntu Linux下安装OpenCV2.4.1所需包 http://www.linuxidc.com/Linux/2012-08/68184.htmUbuntu 12.04 安装 OpenCV2.4.2 http://www.linuxidc.com/Linux/2012-09/70158.htmCentOS下OpenCV无法读取视频文件 http://www.linuxidc.com/Linux/2011-07/39295.htmUbuntu 12.04下安装OpenCV 2.4.5总结 http://www.linuxidc.com/Linux/2013-06/86704.htmUbuntu 10.04中安装OpenCv2.1九步曲 http://www.linuxidc.com/Linux/2010-09/28678.htm基于QT和OpenCV的人脸识别系统 http://www.linuxidc.com/Linux/2011-11/47806.htm[翻译]Ubuntu 14.04, 13.10 下安装 OpenCV 2.4.9  http://www.linuxidc.com/Linux/2014-12/110045.htm--------------------------------------分割线 --------------------------------------OpenCV的详细介绍:请点这里
OpenCV的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-02/112784.htm