ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

迅为iTOP-4412开发板图像识别项目实战-移植opencv(四)

2020-07-30 14:02:06  阅读:357  来源: 互联网

标签:图像识别 编译 4412 开发板 opencv linux 所示 如下 arm


 

因为我要用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

 

标签:图像识别,编译,4412,开发板,opencv,linux,所示,如下,arm
来源: https://www.cnblogs.com/topeet/p/13403372.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有