OpenCV在龙芯平台上的移植

opencv 2.2.0的移植方法:


按照文章:“OpenCV在ARM上的移植 - emouse - 博客园”给出的步骤方法进行


修改的地方:


1、原指定交叉编译器为arm的都改为mipsel,交叉编译器的路径也为Redhat虚拟机中的实际路径/usr/local/mips-linux-gcc/gcc-3.4.6-2f;


2、在/opt/opencv/opencv-mips文件夹里(这个文件夹里存放的是用Cmake-gui对OpenCV-2.2.0进行设置编译之后产生的文件),修改CMakeCache.txt文件第80行,将CMAKE_EXE_LINKER_FLAGS:STRING=' '改为:CMAKE_EXE_LINKER_FLAGS:STRING=-lrt (不是文章里说的173行添加:-lpthread -lrt)。


3、设置完Cmake-gui之后,用make命令编译OpenCV-2.2.0的时候产生了:OpenCV-2.2.0/modules/ml/src/gbt.cpp中'expl'未定义的错误,将此文件第14行和第16行注释掉,就不再报错了;


4、make install之后产生的文件在/usr/local/mips-linux-gcc文件夹里。


//5、将/usr/local/mips-linux-gcc文件夹里的文件转移到/usr/local/opencv-mips-2.20中。


6、卸载时用终端进入到/opt/opencv/opencv-mips目录里,然后输入:make install。








opencv 1.0.0的移植方法:


1、将源码opencv-1.0.0.tar-for-linux.gz放在虚拟机/opt/opencv文件夹里;


2、从终端中输入tar zxvf opencv-1.0.0.tar-for-linux.gz解压到本文件夹中,生成目录opencv-1.0.0;


3、进入目录opencv-1.0.0,如果想把opencv安装在/opt/opencv/opencv-mips,则在终端中输入:./configure --host=mipsel-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --enable-shared --disable-apps CXX=mipsel-linux-g++ CPPFLAGS=-I/usr/include --prefix=/opt/opencv/opencv-mips --libdir=/opt/opencv/opencv-mips/lib --includedir=/opt/opencv/opencv-mips/include --datadir=/opt/opencv/opencv-mips/data  回车;


如果想把opencv安装在/usr/local,则在终端中输入:./configure --host=mipsel-linux --without-gtk --without-carbon  --without-quicktime --without-1394libs --without-ffmpeg --without-python --without-swig --enable-static --enable-shared --disable-apps CXX=mipsel-linux-g++ CPPFLAGS=-I/usr/include  回车;


4、运行完configure之后入无错误则继续在终端中输入make,进行编译;这时会有错误产生:impossible constraint in 'asm',打开../opencv-1.0.0/otherlibs/highgui文件夹里的makefile文件,将155行:-I/usr/include用#注释掉,将266行:/usr/include用#注释掉;再次make,应该无错误产生;


5、make install之后生成的文件放到了第3步指定的文件夹中,在虚拟机中已经分别在这两个文件夹中都生产了opencv-1.0.0编译后的文件;


6、编辑/etc/profile,在里面添加一行:export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig,接着需要把/usr/local/lib/pkgconfig里opencv.pc文件的第11行修改为:Libs: -L${libdir} -lcxcore -lcv -lhighgui -lcvaux -lml -lpthread -ldl;


7、找到opencv-1.0.0 sample文件夹里的drawing.c文件,将它拷贝到/software/facedetect文件夹里,在这里运行:mipsel-linux-g++ drawing.c -o drawing `pkg-config --cflags --libs opencv` ,会生成drawing可执行文件;


8、在开发板/etc/profile文件里export LD_LIBRARY_PATH=/lib:/usr/lib语句后面增加“:/lib/opencv”;


9、开发板的终端控制台通过nfs服务连接到虚拟机,将虚拟机/opt/opencv/opencv-mips/lib文件更名为opencv,放到nfs共享文件夹里,在开发板的终端控制台输入命令cp -r opencv /lib,将opencv动态链接库拷贝到开发板/lib/opencv文件夹里;


10、在开发板中运行drawing,会提示不支持GTK,因为opencv在linux里不支持GTK方法,需要修改drawing.c,让其不使用GTK。





























  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenCV 训练出来的算法移植到 ARM 平台上,需要考虑以下几个步骤: 1. 确认可用的 ARM 平台:首先,确定你要将算法移植到的 ARM 平台的类型和版本。因为 ARM 平台有各种不同的架构和技术,例如 ARM Cortex-A 系列和 Cortex-M 系列。根据具体的平台,选择合适的工具和库进行移植工作。 2. 配置开发环境:安装和配置适用于 ARM 平台的交叉编译工具链。ARM 平台上的编译需要使用能够生成适用于该平台指令集的编译器。同时,安装 OpenCV 库并配置编译参数,以便在 ARM 平台上进行编译。 3. 修改代码:修改 OpenCV 训练出来的算法的代码,使其适应 ARM 平台上的指令集和硬件架构。这可能包括针对 ARM 平台的优化、修改或移植特定的库或模块,以及确保代码在 ARM 平台上正常运行。 4. 编译和构建:使用配置好的交叉编译工具链,将修改后的代码编译为 ARM 平台可执行的二进制文件。确保编译和构建过程中不出现错误或警告。 5. 测试和调试:将生成的二进制文件上传到 ARM 平台上,并运行测试数据集。通过检查输出结果和性能指标,确保算法在 ARM 平台上的正确性和效率。 6. 优化和部署:根据需要进一步优化算法,使其在 ARM 平台上的性能达到最佳状态。最后,将编译好的二进制文件部署到目标 ARM 平台上,确保算法可以在实际应用中正常运行。 通过以上步骤,你可以将 OpenCV 训练出来的算法成功地移植到 ARM 平台上,实现在嵌入式系统或移动设备上进行图像处理和计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值