当前位置: 代码迷 >> 综合 >> opencv3.2(with ffmpeg) 交叉编译移植到arm板(imx6),成功跑起来。
  详细解决方案

opencv3.2(with ffmpeg) 交叉编译移植到arm板(imx6),成功跑起来。

热度:59   发布时间:2023-12-28 16:27:11.0

一、整体介绍

1、本篇博客介绍opencv3.2 交叉编译过程,自己备用。

2、不同的linux系统、opencv版本、arm编译器,opencv交叉编译方法会有所不同。本文提供一个已验证可实行的方法:Ubuntu14.04+Opencv3.2+arm-linux-gcc-4.3.2。


二、操作步骤

1、在 opencv 交叉编译之前要先进行依赖库的交叉编译,然后才能进行 opencv 库的交叉编译(因为opencv 依赖于很多库函数,如果不编译会造成,编译后的opencv 无法使用)。也就是opencv中有3rdparty,该文件夹下是基础的编解码库,其中最重要的是ffmpeg,它是处理视频的基础库。具体的各库自己可以了解下是具体干嘛用的。

2、这里首先给出OpenCV 交叉编译时各个库的依赖关系:  

        OpenCV

                          |--------zlib

                          |--------jpeg

                          |--------libpng

                                                 |--------zlib

                          |--------tiff

                                                 |--------zlib

                          |--------ffmpeg

                                                 |--------x264

                                                 |--------xvidcore

3、首先感谢这位博主 http://blog.chinaunix.net/uid-28669227-id-5024889.html  本人已验证其方法可行,但由于其采用opencv2.0版本过老及没有采用CMake-gui来交叉编译,本人最终选择了更新的opencv版本。

4、安装依赖项

        sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev

       这几项与视频解码相关,不安装的话后面opencv make结果就会出现这样:

       FFMPEG:                        NO

       --      codec:                     NO

       --      format:                    NO

       --      util:                          NO

       --      swscale:                  NO

       --      gentoo-style:           NO

5、ARM编译器安装

(1)将arm-linux-gcc-4.3.2.tar.gz在 /usr/local/arm/ 下解压,在  /root/.bashrc 添加环境变量
(2)export PATH=$PATH:/usr/local/arm/4.3.2/bin       arm编译器路径
(3)export OPENCV_DEPEND=/usr/local/arm/opencv-depend     opencv依赖库安装路径
(4)export OPENCV_INSTALL=/usr/local/arm/opencv-install       opencv安装路径

(5)arm再按Tab键出现  arm-none-linux-gnueabi-gcc-4.3.2


6、依赖库的安装编译主要包括:

     zlib-1.2.8 

     jpeg-9a

     libpng-1.6.18

     yasm-1.3.0

     x264-snapshot-20151030-2245

     xvidcore-1.3.3

     ffmpeg-2.8.1


7、Cmake安装   

//
sudo apt-get install cmake cmake-qt-gui
//

注:路径设置在交叉编译工具链所在的路径


8、编译3rdparty中依赖库

9、opencv3.2的交叉编译过程记录


致谢

1、Ubuntu14.04 Opencv2.4.9交叉编译

2、OpenCV移植到ARM9

3、linux下ffmpeg库 ARM交叉编译

4、 ffmpeg ./configure参数说明

5、3rdparty中依赖库下载地址


注:

1、3rdparty库交叉编译的路径直接放在交叉编译工具链所在路径较好;

2、交叉编译opencv3.2时需要设置好prefiex路径;

3、拷贝编译好的库到板子上,路径要和ubuntu里的一致;

4、lib中的库要放在/usr/local/lib  或者是/usr/lib/下,具体哪一个忘了;

5、Qt中pro文件 配置头文件和lib文件的路径时,要对应好路径,同时lib路径下要添加全lib;

6、3rdparty库交叉编译好的lib文件也需要放在交叉编译opencv3.2时设置的prefiex路径下的lib中,当然拷贝到目标板子上也要全。





  相关解决方案