opencv的arm移植

安装


1 安装cmake及一些依赖库

$ sudo apt-get install cmake
$ sudo apt-get update   //更新源
$ sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev      libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

2 安装opencv (非移植–ubunut中)

从官网下载opencv并解压,cd命令进入opencv的目录

cmake .
sudo make
sudo make install

配置(移植arm中)


1 将opencv的库加入到路径,从而让系统可以找到

$ sudo gedit /etc/ld.so.conf.d/opencv.conf
    末尾添加
    /usr/local/lib

$ sudo ldconfig #使配置生效

2 编辑bash.bashrc

$ sudo gedit /etc/bash.bashrc 
    末尾添加2PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
$ source /etc/bash.bashrc  #使配置生效

$ sudo updatedb #更新database

OpenCV 的交叉编译


1 cmake-gui 打开cmake的gui界面,开始进行配置,配置过程如下图所示:

$ cmake-gui

cmake-gui 填以下信息

/home/huazai/huazai/opencv-3.2.0

/home/huazai/huazai/opencv-arm

arm-linux

3.1.0

/opt/goke/ct_glibc/4.6.1/usr/bin/arm-goke-linux-gnueabi-gcc

/opt/goke/ct_glibc/4.6.1/usr/bin/arm-goke-linux-gnueabi-g++

/opt/goke/ct_glibc/4.6.1/usr

2 填入opencv的根目录、生成文件的目录
这里写图片描述

3 在下图的界面中选择交叉编译工具链以及库文件,/usr/local/arm/4.3.2为交叉工具链的目录
这里写图片描述

5 此时主界面如下图所示,这时Cmake会读取程序的一些配置信息,可以再下图红框中对每一个编译选项进行修改,这里去掉WITH_TIFF支持并修改安装路径,其他配置可以根据需求选择。
这里写图片描述

6 替换

勾掉WITH_TIFF支持
点击 generate

$ cd opencv-arm
$ vi CMakeCache.txt
    下找到CMAKE_EXE_LINKER_FLAGS:STRING=''替换成:
    CMAKE_EXE_LINKER_FLAGS:STRING=-pthread -ldl -lrt 

7 编译

opencv-arm$ make 
opencv-arm$ sudo make install

8 编译生成 lib目录

lib文件夹即生成的库文件,拷贝到开发板对应目录即可

9 编译应用程序

$ cd ~/opencv-3.2.0/samples/cpp/example_cmake

$ CMakeLists.txt  //将该文件修改为以下内容
    # this is required
    set(CMAKE_SYSTEM_NAME Linux)

    set(CMAKE_FIND_ROOT_PATH /opt/goke/ct_glibc/4.6.1/usr/ /opt/goke/ct_glibc/4.6.1/usr)
    set(ARM_LINUX_SYSROOT /opt/goke/ct_glibc/4.6.1/usr/ CACHE PATH "ARM cross compile system root")

    # search for programs in the build host directories (not necessary)
    SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    # for libraries and headers in the target directories
    SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

    set(TOOLCHAIN_DIR "/opt/goke/ct_glibc/4.6.1/usr/")

    set(CMAKE_C_COMPILER "/opt/goke/ct_glibc/4.6.1/usr/bin/arm-goke-linux-gnueabi-gcc")
    set(CMAKE_CXX_COMPILER "/opt/goke/ct_glibc/4.6.1/usr/bin/arm-goke-linux-gnueabi-g++")

    set(CMAKE_VERBOSE_MAKEFILE ON)

    cmake_minimum_required(VERSION 2.8)
    project( LoadImage )

    set(OpenCV_DIR /home/huazai/huazai/opencv-arm)
    include_directories(/home/huazai/huazai/opencv-arm/include)

    find_package( OpenCV REQUIRED )
    add_executable( LoadImage LoadImage.cpp )
    target_link_libraries( LoadImage ${OpenCV_LIBS} )
$ cmake .
$ vi CMakeCache.txt
     70 //Flags used by the linker.
     71 CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl
$ make

出现以下错误时:
/opt/goke/ct_glibc/4.6.1/usr/bin/../lib/gcc/arm-goke-linux-gnueabi/4.6.1/../../../../arm-goke-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_videoio.so, needed by /home/huazai/huazai/opencv-arm/lib/libopencv_videostab.so, not found (try using -rpath or -rpath-link)

解决方法:
将 /home/huazai/huazai/opencv-arm 下的lib/* 和include/* 全部拷贝到 交叉工具链的/opt/goke/ct_glibc/4.6.1/usr/arm-goke-linux-gnueabi/对于的目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值