zoukankan      html  css  js  c++  java
  • 迅为iTOP-4412开发板图像识别项目实战-移植opencv(四)

     

    因为我要用opencv获取摄像头并拍照,这里我使用的是opencv来实现的,同时也方便大家以后对opencv的学习,所以我们要先编译opencv库。

    环境:迅为提供的ubuntu16.04

    编译器:arm-linux-4.4.1.tar.gz

    opencv 版本:opencv-2.4.9.zip

    平台:迅为iTOP-4412开发板

     

     

    .安装编译器

    arm-linux-4.4.1.tar.gz拷贝到ubuntu的/usr/local/arm下面并解压,如下图所示:

     

     输入命令 vi ~/.bashrc 打开环境变量,添加以下环境变量并注释掉2014的环境变量,如下图所示:

     

    更新一下环境变量,如下图所示,使用命令“source .bashrc ”更新环境变量,并重启ubuntu。

     

     

    重启成功后,输入arm,双击tab,如果显示只有一个4.4.1则正确,如果显示还有其他版本则不正确。如下图所示:

     

     

    .opencv 移植

      将文件中提供的“opencv-2.4.9.zip”即 opencv 源码包解压,并将其移至 ubuntu 下,作者将该文件放入了“/home/baidu/opencv”下,如下图所示:

     

    输入命令unzip opencv-2.4.9.zip 解压并进去解压生成的文件夹,如果没有unzip这个软件可以先使用apt-get命令安装一下。

     

    OpenCV 2.2 以后版本需要使用 Cmake 生成 makefile 文件,因此需要先安装 cmake。

    ubuntu 下安装 cmake 比较简单,使用命令“apt-get install cmake”和”apt-get install cmake-qt-gui“如下图所示

     

     

     

    安装val/v4l2等必要的依赖库,一定要在编译opencv之前安装,否则在编译opencv的时候不会被编译进去。

    apt-get install v4l2ucp v4l-utils libv4l-dev

    使用命令“cmake-gui”打开 cmake 的 gui 界面,开始进行配置。如下图示所示

     

    我们在“where is the source code”中填入电脑中 opencv 源码的位置,“where tobuild the binaries”填入生成 make 编译文件的位置,然后点击 configure 按钮。如下图所示。

     

    选择最后一项,然后点击 next,如下图所示。

     

     Operating System 选择目标系统“Linux”,Compilers 中选择交叉编译器的 gcc 和g++,如下

    /usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-gcc

    /usr/local/arm/4.4.1/bin/arm-none-linux-gnueabi-g++

    Target Root 选择交叉编译器的路径“/usr/local/arm/4.4.1”,include Mode 选择“search only in target root”。点击 finish。如下图所示。

     

    此时主界面如下图所示,这时 Cmake 会读取程序的一些配置信息,可以再下图红框中对每一个编译选项进行修改,将 CMAKE_INSTALL_PREFIX 改成你想要的路径,作者改成了“/usr/local/opencv-2.4.9”,这里去掉 WITH_TIFF,WITH_CUDA 及 WITH_GTK。如下图所示。

     

    设置完成后,点击configure和enerate,并退出。

     

    在编译路径/opt/opencv_arm 下就生成了 Makefile。关闭后我们使用“cd /opt/opencv-arm/”命令进入“/opt/opencv_arm”,在执行 Makefile 之前需要修改 CMakeCache.txt 文件的 194 行。使用命令“vi CMakeCache.txt”编辑文本。如下图所示。

     

    跳转至 194 行。将“CMAKE_EXE_LINKER_FLAGS:STRING=' '”改为

    “CMAKE_EXE_LINKER_FLAGS:STRING=-lpthread -lrt -ldl”如下图所示。

     

     编译 libv4l库,将libv4l-0.6.4.tar.gz压缩包拷贝到ubuntu目录,这里作者拷贝到了

    /home/baidu/opencv下面,如下图所示:

     

    把资料中的videodev.h头文件拷贝拷贝到Ubuntu的/usr/include/linux/下面,如下图所示:

     

    进入解压libv4l库生成的目录,打开makefile

     

    在顶层Makefile添加以下命令:

    CC=arm-none-linux-gnueabi-gcc

     

    同样,我们进入libv4l1和libv4l2和libv4lconvert文件夹下,同样每个文件夹对应的makefile里面添加CC=arm-none-linux-gnueabi-gcc

    修改完成后,我们回到libv4l-0.6.4下,依次输入以下命令:

    mkdir tmp

    make

    make install PREFIX=$PWD/tmp

    编译成过以后,我们进入我们创建的tmp文件夹的lib目录下,输入命令file *.*,查看我们编译的库是否为ARM的,如果是则正确,如下图所示:

    编译成功以后,输入以下命令把库和头文件复制到交叉编译链里相应的路径中:

    cp -r include/*  /usr/local/arm/4.4.1/arm-none-linux-gnueabi/include/

    cp -r lib/*  /usr/local/arm/4.4.1/arm-none-linux-gnueabi/lib

    如下图所示:

     

          输入以下命令, 再把编译生成的lib库复制到opencv的安装路径下:

    cp -r  lib/*  /opt/opencv-arm/lib

    如下图所示:

     

    输入命令”cd /opt/opencv-arm/“,回到opencv编译目录,输入make,如下所示:

     

    编译完成之后。会显示进度为百分之百,如下图所示:

     

    编译完成之后。使用指令“make install”编译完成之后。使用指令“make install”

     

    我们可以在“/usr/local/opencv-2.4.9/”目录下看到编译生成的库文件。至此,移植工作基本完成。

     

     

     

     关注“迅为电子”公众号,了解更多嵌入式资讯。

    转自:topeetboard.com

  • 相关阅读:
    How to: Display a List of Non-Persistent Objects in a Popup Dialog 如何:在弹出对话框中显示非持久化对象列表
    How to: Use XPO Upcasting in XAF 如何:在 XAF 中使用 XPO 强制转换
    How to: Use the Entity Framework Data Model Located in an External Assembly 如何:使用位于外部程序集中的EF数据模型
    How to: Use the Entity Framework Code First in XAF 如何:在 XAF 中使用EF CodeFirst
    How to: Supply Initial Data for the Entity Framework Data Model 如何:为EF数据模型提供初始数据
    How to: Calculate a Property Value Based on Values from a Detail Collection 如何:基于详细信息集合中的值计算属性值
    How to: Use the Entity Framework Model First in XAF 如何:在 XAF 中使用EF ModelFirst
    How to: Change the Format Used for the FullAddress and FullName Properties 如何:更改用于FullAddress和FullName属性的格式
    How to: Create a Business Model in the XPO Data Model Designer 如何:在 XPO 数据模型设计器中创建业务模型
    How to: Initialize Business Objects with Default Property Values in Entity Framework 如何:在EF中用默认属性值初始化业务对象
  • 原文地址:https://www.cnblogs.com/topeet/p/13403372.html
Copyright © 2011-2022 走看看