P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记
P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

Opencv交叉编译及Arm平台移植

2014年12月03日

准备


1 配置好交叉编译链

2 安装cmake及一些依赖库

sudo apt-get install cmake
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev

3 安装cmake-gui

sudo apt-get install cmake-qt-gui

4 从官网下载opencv源码

编译及安装


1 shell中输入cmake-gui打开cmake图形界面,输入opencv源码所在路径及要安装的路径(比如/usr/local/arm-opencv)。

2 点击configure按钮,在对话框中选择specify options for corss-compiling选项,点击next。

3 在弹出的新的对话框中,填上operating system(linux),processor(arm),compilers(c和c++编译工具的具体路径)及target root(编译链目录,即arm-linux-*-gcc所在的bin文件夹上一级目录)。

4 点击finish,cmake开始工作。

5 停止工作后,会看到一片红,取消with_tiff,with_cuda,with_cl,build_opencv_ocl的选项;勾选上build_jpeg,build_png;找到cmake_install_prefix,改为usr/local/arm-opencv;如果想同时编译example,勾选上build_examples;如果想要生成debug版本的库,将cmake_build_type选项改为debug(首字母大写)。

6 配置完成后点击configure,直到没有红色为止,然后点击generate。

7 去往/usr/local/arm-opencv路径下,找到cmakecache.txt文件,将其中的cmake_exe_linker_flags:string=改为cmake_exe_linker_flags:string=-lpthread -lrt。

8 编译,等待完成。

sudo make

9 安装。

sudo make install

PC上配置、交叉编译及移植


1 在/etc/profile加入

#for arm-opencv
PKG_CONFIG_PATH=/usr/local/arm-opencv/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH

2 source /etc/profile

3 编写测试程序

// arm-opencv-test.cpp

#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc,char *argv[])
{
  Mat image=imread("test.jpg");
  if(NULL==image.data)
   {
      cout<<"fail to load the image"<<endl;
   }

  cout<<"the size of test.jpg is:"<<image.rows<<"x"<<image.cols<<endl;

  return 0;
}

4 编译

arm-none-linux-gnueabi-g++ `pkg-config --cflags arm-opencv` `pkg-config --libs arm-opencv` arm-opencv-test.cpp -lpthread -lrt -ldl -o arm-opencv-test

5 将编译得到的opencv库拷贝到板子里的/lib/路径下(将libstdc++.so,libstdc++.so.6和libstdc++.so.6.0.16也拷贝到此),然后将编译得到的测试程序(可执行文件)拷贝到板子里进行测试。


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次