宿主机:ubuntu14.04

u opencv版本:opencv2.4.13

u 交叉编译器:arm-2009q3.tar.bz2

opencv下载网址:http://opencv.org/

交叉编译器下载网址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc

选择对应的版本号即可,这里用该目录下的已经下载好的文件,拷贝arm-2009q3.tar.bz2和opencv-2.4.13.zip到ubuntu,这里是/home/now。

1.       安装库文件

uptech@uptech:/home/now#sudo apt-get install build-essential

uptech@uptech:/home/now#sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

uptech@uptech:/home/now#sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

uptech@uptech:/home/now# sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

uptech@uptech:/home/now# sudo apt-get update

uptech@uptech:/home/now# sudo apt-get install ffmpeg

只是安装opencv的话用命令不难,为了为后面用cmake-gui进行交叉编译铺路因此这里用cmake-gui来编译先检查cmake是否安装

uptech@uptech:/home/now# cmake -version

一般是已经安装好了very good,检查cmake-gui

uptech@uptech:/home/now# cmake-gui -version

没安装,提示准备好了,安装即可

The program 'cmake-gui' is currently not installed. You can install it by typing:

uptech@uptech:/home/now# sudo apt-get install cmake-qt-gui

2.       解压opencv

新建一个文件夹叫opencv,里面专门放opencv编译生成的各种东西,将下载后的文件解压到这里。

uptech@uptech:/home/now#mkdir opencv

uptech@uptech:/home/now$ cd opencv/

uptech@uptech:/home/now/opencv$ unzip /home/now/opencv-2.4.13.zip

3.       安装交叉编译器

进入/usr/local目录创建arm并解压,因权限问题,使用超级用户。

uptech@uptech:/home/now/opencv$ cd /usr/local/

uptech@uptech:/usr/local$ sudo su

[sudo] password for uptech:

root@uptech:/usr/local#

root@uptech:/usr/local$ mkdir arm

root@uptech:/usr/local/arm#tar -xjvf /home/now/arm-2009q3.tar.bz2 -C./

4.       安装交叉编译器

进入实验目录,创建移植目录arm,配置opencv。

root@uptech:/usr/local/arm# cd /home/now/opencv

root@uptech:/home/now/opencv# ls

opencv-2.4.13

root@uptech:/home/now/opencv# mkdir arm

root@uptech:/home/now/opencv# cmake-gui

选择源代码路径和移植路径如图:

点击Configure,选择最后一项。

Operating System:arm-linux(填写名称任意)。

C:交叉编译器arm-none-linux-gnueabi-gcc路径。

C++:交叉编译器arm-none-linux-gnueabi-g++路径。

点击Finish。

修改安装路径,这里是/usr/local/opencv-arm。

增加:JPEG和PNG选项

去掉:1394

点击Configure,然后在点击Generate,然后关闭。进入arm目录make编译。

root@uptech:/home/now/opencv#cd arm/

root@uptech:/home/now/opencv/arm# ls

3rdparty               CPackSourceConfig.cmake  modules

apps                   CTestTestfile.cmake      opencv2

bin                    cvconfig.h               OpenCVConfig.cmake

CMakeCache.txt         data                    OpenCVConfig-version.cmake

CMakeFiles             doc                      OpenCVModules.cmake

cmake_install.cmake    include                  unix-install

cmake_uninstall.cmake  junk                     version_string.tmp

CopyOfCMakeCache.txt   lib

CPackConfig.cmake      Makefile

root@uptech:/home/now/opencv/arm# make

出现问题:

../../lib/libopencv_core.so: undefinedreference to `pthread_spin_init'

../../lib/libopencv_core.so: undefinedreference to `pthread_spin_unlock'

../../lib/libopencv_core.so: undefinedreference to `pthread_spin_lock'

../../lib/libopencv_core.so: undefinedreference to `pthread_spin_destroy'

../../lib/libopencv_core.so: undefinedreference to `pthread_once'

../../lib/libopencv_core.so: undefined referenceto `clock_gettime'

../../lib/libopencv_core.so: undefinedreference to `pthread_spin_trylock'

修改目录下的CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread –lrt –ldl,继续make编译。

然后安装,会在/usr/local/opencv-arm目录。

root@uptech:/home/now/opencv/arm# make install

……

root@uptech:/home/now/opencv/arm# ls /usr/local/opencv-arm

bin include  lib  share

5.       编写测试程序

创建测试目录,编写test.c,测试程序是将彩色图片1.bmp变成灰白1_1.bmp。

root@uptech:/home/now/opencv/arm# cd ..

root@uptech:/home/now/opencv/# mkdir opencv_test/

root@uptech:/home/now/opencv/# cd opencv_test/

root@uptech:/home/now/opencv/opencv_test# vim test.c

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

int main(int argc,char **argv)

{

CvCapture* capture = NULL;

IplImage* pImg = NULL;

IplImage* pImg1 = NULL;

fprintf(stderr, "123");

pImg = cvLoadImage("1.bmp",1);

fprintf(stderr, "456");

pImg1 =cvCreateImage(cvSize(pImg->width,pImg->height),IPL_DEPTH_8U,1);

fprintf(stderr, "456");

cvCvtColor(pImg,pImg1,CV_RGB2GRAY);

fprintf(stderr, "789");

cvSaveImage("1_1.bmp",pImg1);

fprintf(stderr, "109");

cvReleaseImage( &pImg );

cvReleaseImage( &pImg1 );

return 0;

}

拷贝三个头文件cv.h,cxcore.h,highgui.h到当前目录。因为使用的是opencv的头文件,这些头文件在/usr/local/opencv-arm/include/下

root@uptech:/home/now/opencv/opencv_test# cp/usr/local/opencv-arm/include/opencv/cv.h ./

root@uptech:/home/now/opencv/opencv_test# cp/usr/local/opencv-arm/include/opencv/cxcore.h ./

root@uptech:/home/now/opencv/opencv_test# cp/usr/local/opencv-arm/include/opencv/highgui.h ./

用交叉编译器编译,-I和-L为头文件路径和库文件路径,-l为opencv库参数。生成测试文件test。

root@uptech:/home/now/opencv/opencv_test# /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-g++test.c -o test -I/usr/local/opencv-arm/include/ -L/usr/local/opencv-arm/lib/-lopencv_core -lopencv_highgui -lopencv_imgproc

test.c:24: note: the mangling of 'va_list'has changed in GCC 4.4

root@uptech:/home/now/opencv/opencv_test# ls

cv.h cxcore.h  highgui.h  test test.c

将测试程序和opencv-arm拷贝到共享目录imx6下,方便arm开发板去访问。将一张1.bmp的图片放到imx6目录下。

root@uptech:/home/now/opencv/opencv_test# cp test /imx6

root@uptech:/home/now/opencv/opencv_test# cp /usr/local/opencv-arm /imx6/ -rf

root@uptech:/home/now/opencv/opencv_test# cp /home/now/1.bmp /imx6

6.       arm上测试

打开开发板,配置IP地址。

[root@yaffs]# ifconfig eth0 192.168.88.184

挂载到将宿主机共享目录imx6挂载到开发板。

[root@yaffs]# mountnfs 192.168.88.184:/imx6 /mnt/nfs/

[root@yaffs]# cd /mnt/nfs/

设置当前环境变量,执行应用程序,会生成1_1.bmp。

[root@ nfs]# export LD_LIBRARY_PATH=$PWD/opencv-arm/lib

[root@ nfs]# ./test

123456456789109[root@nfs]#ls

1.bmp             1_1.bmp    test

[root@UP-TECH nfs]#

因为开发板不支持gtk图形显示,所以不能在开发板上显示,只能将图片拷贝出来在PC上去查看。

测试效果图,左边是彩色图像,右边是经过opencv处理过的灰白图像:

imx6航移植

arm poky linux,opencv移植在4412和imx6(yocto 3.14.28 arm-poky-linux-gnueabi )上相关推荐

  1. IMX6基于yocto3.14.28移植声卡wm8960

    项目需求,在基于yocto Linux3.14.28的IMX6平台下移植wm8960声卡.硬件部分如下: 声卡驱动在内核代码的sound/soc/codec,和sound/soc/fsl目录下.原代码 ...

  2. opencv 移植到迅为IMX6开发板

    OpenCV 是目前开源项目中最著名的基于机器视觉方向的图像处理的开发包,目前已经有被移植到嵌入式 Linux 环境上.本文介绍了 OpenCV 交叉编译的基本步骤. 一.编译环境及库文件 linux ...

  3. linux opencv移植教程,OpenCV在Ubuntu和Linux系统下的移植

    1安装cmake-qt-gui:sodo apt-get install cmake-qt-gui 2. 配置cmake: 进入存放opencv2.4.10的文件夹,输入cmake-gui.进入如下界 ...

  4. linux程序移植到vxworks,VxWorks入门(一):VxWorks Vs Linux

    1, VxWorks的特点: 幻灯片 4 .O {font-size:149%;} ■ All functions exist in the same "space". ► Nam ...

  5. 全志F1C100s主线linux入坑记录 (1)linux系统移植

    linux系统移植 (基于SD卡启动) 百度网站 文章目录 linux系统移植 (基于SD卡启动) 一.安装gcc交叉编译器 二.Uboot移植 1.下载Uboot 源码 2.配置Uboot 3.编译 ...

  6. rtl8188eus Linux驱动移植

    rtl8188eus Linux驱动移植 rlt8188eus作为无线USB网卡,可以给我们的Linux设备提供无线上网能力,也能配置为AP,给其它无线设备提供上网能力.在使用较低版本的内核时,内核中 ...

  7. linux 挂iscisc存储,基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文.docx...

    基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文 Classified Index: TP316.8 U.D.C: 621.38 Dissertation for the Mas ...

  8. LINUX QT移植到ARM (zynq平台 qt5.4.1)

    LINUX QT移植到ARM (zynq平台 qt5.4.1) 1.安装tslib 2.安装QT5.4.1 2.1下载QT5.4.1 2.2解压 2.3修改配置文件替换自己的编译器 2.4配置 2.4 ...

  9. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

  10. 嵌入式linux rtsp移植,嵌入式网络收音机的ARM实现 - ARM - 电子发烧友网

    3 系统的的软件设计 3.1 嵌入式Linux的移植 嵌入式Linux内核的版本很多,一般情况下版本越高,系统越稳定,驱动更完善,本系统选择了2.6.18的Linux内核.其实对于2.6以后版本的Li ...

最新文章

  1. PowerDesigner中如何给字符串字段设置默认值 .
  2. KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process
  3. 设计模式(一) 策略模式
  4. rar for android最新版,RAR for Android手机版下载-RAR for Android 安卓压缩软件v5.30 安卓版下载-腾牛安卓网...
  5. Ubuntu16.04(64位)下安装和破解source insight4
  6. 【数学基础】概率论——p(x|\theta)和p(x;\theta)的区别
  7. Android开发之在Fragment和Activity页面拍照需要注意的地方
  8. 三年租男友回家竟花了10万......
  9. 7-19 谁先倒 (15 分)
  10. 矛与盾——扫描器盲打对主动安全防护的启示
  11. 【优化选址】基于matlab遗传算法求解多城市多应急物流中心选址优化问题【含Matlab源码 H001期】
  12. Web前端开发视频教程
  13. 【Java分享客栈】我为什么极力推荐XXL-JOB作为中小厂的分布式任务调度平台
  14. 如何完全卸载删除Parallels Desktop Mac教程
  15. Chap1_基础理论+Chap2_数据准备和数据模型
  16. 哈佛结构和冯诺依曼结构?STM32属于哈佛结构还是冯诺依曼结构?
  17. 我的世界java版怎么加整合包_我的世界怎么制作整合包
  18. 刻意练习,从新手到大师
  19. 数字图像处理必备软件
  20. 关于安装VISO过程中出现的1406错误解决方案

热门文章

  1. ios实例开发精品文章推荐(8.13)
  2. 全球四大互联网公司最大的敌人是谁
  3. 你使用过哪些数据分析的方法?
  4. 大吉大利,今晚如何用R语言解锁“吃鸡”正确姿势
  5. 时间序列分析工具箱——timetk
  6. Lesson 08 for Plotting in R for Biologists
  7. 网页f12查看服务器,网页中审查元素(按F12)与查看网页源代码的区别
  8. python 利用栈实现复杂计算器
  9. 什么是多态,多态的实现方法是什么?
  10. Asp.Net WebAPI传递json对象、后台手动接收参数