打印
[ARM入门]

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

[复制链接]
794|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jugaga|  楼主 | 2020-7-30 14:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
因为我要用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

使用特权

评论回复

相关帖子

沙发
云山道长| | 2020-8-23 15:46 | 只看该作者
谢谢

使用特权

评论回复
板凳
123654789| | 2020-8-23 17:32 | 只看该作者
如何使用生成的软件啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

118

帖子

1

粉丝