Linux开发二十三_opencv移植
来源:互联网 发布:诛仙手游道法对应数据 编辑:程序博客网 时间:2024/06/08 17:40
Linux开发二十三
opencv移植
象棋小子 1048272975
opencv是一个开放源代码的机器视觉库,它是基于c/c++开发的,可用与计算机视觉、图像处理、模式识别和跟踪等等。
1. opencv编译
从opencv官网下载最新的opencv3.2.0源码,可以在源码包中查看README文件等,确定编译、安装的步骤。
opencv通过cmake进行配置。
cmake-gui
输入opencv源码目录,构建目录后,点击Configure,先配置交叉编译工具。
交叉工具配置完成后,将会出来默认的选项配置,选中基本jpeg、png、opencv模块的构建。
WITH组中,选中WITH_QT,必须已经编译安装好Qt,不要点选其它的GUI(如WITH_GTK),用于支持opencv HighGUI,HighGUI用来建立快速软件原形或是试验用的,它的设计意图是为用户提供简单易用的图形用户接口,这是根据不同GUI,需要移植的部分。opencv已经内部支持了MFC、Qt、GTK等等。
点选WITH_QT后,再进一步Configure,会进一步出来Qt的配置选项,设置Qt相应的安装目录。
设置编译选项,设置安装目录为/usr/opencv3.2.0,编译Qt5.8工程需支持c++11标准,CMAKE_CXX_FLAGS加上 -std=c++11。
最后点击Configure,没有错误后,点击Generate,生成Makefile文件,进入到opencv的build目录,make、make install安装opencv。
2. 环境变量
在/usr/opencv3.2.0目录中生成include、lib、share目录,把lib目录拷贝到根文件系统/usr/opencv3.2.0中。为了能使用opencv,系统必须知道opencv的位置,配置等等。在/etc/profile文件中加入opencv的环境变量。
# opencv
OPENCVDIR=/usr/opencv3.2.0
# shared libraries
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib:
$QTDIR/lib:$OPENCVDIR/lib
export LD_LIBRARY_PATH
3. 应用编程
编译安装好opencv后,就可以用opencv的api函数进行应用编程了,简单的用opencv显示一张jpg图片的测试代码opevcv_test.c如下。
#include <stdlib.h>
#include <stdio.h>
#include "cv.h"
#include "highgui.h"
#include <unistd.h>
int main()
{
IplImage*img = 0;
//load an image
img=cvLoadImage("/mnt/lena.jpg",-1);
if(!img) {
printf("Couldnot load image file.\n");
exit(0);
}
//create a window
cvNamedWindow("mainWin",CV_WINDOW_AUTOSIZE);
cvMoveWindow("mainWin",208, 0);
//show the image
cvShowImage("mainWin",img );
//refresh the image
cvWaitKey(5000);
//release the image
cvReleaseImage(&img);
return0;
}
编译应用:
arm-linux-g++opencv_test.c -o opencv_test -I /usr/opencv3.2.0/include/opencv -I/usr/opencv3.2.0/include -L /usr/opencv3.2.0/lib-lopencv_features2d -lopencv_flann -lopencv_objdetect -lopencv_highgui-lopencv_ml -lopencv_photo -lopencv_shape -lopencv_superres -lopencv_video-lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core -L/usr/Qt5.8/lib -lQt5Core -lQt5Gui -lQt5Test -lQt5Concurrent -lQt5Widgets
拷贝lena.jpg图片到sd卡,板端启动后,挂载sd卡到/mnt目录,运行opencv_test。
mount /dev/mmcblk1 /mnt
./opencv_test
4. 附录
https://pan.baidu.com/s/1slczwhJ
bootloader源码以及使用说明
https://pan.baidu.com/s/1eRDJtNs
Qt5.8官网源码
https://pan.baidu.com/s/1nuGmSqt
本系列例程的根文件系统
https://pan.baidu.com/s/1i5btLGT
opev3.2.0官网源码
https://pan.baidu.com/s/1pLpuHw3
yaffs官网源码
https://pan.baidu.com/s/1bpkZynt
busybox-1.26.2官网源码
https://pan.baidu.com/s/1i4EtjfR
tslib官网源码
https://pan.baidu.com/s/1i5MGRhb
mplayer-1.3.0官网源码
https://pan.baidu.com/s/1sl0fXlr
基于S3C2416修改的linux-4.10.10源码
- Linux开发二十三_opencv移植
- Linux开发二十一_tslib移植
- Linux开发二十二_Qt移植
- Linux开发二十四_mplayer移植
- 图像处理基础(二)_OpenCV命名规则
- ARM+LINUX移植攻略(二) U-boot-2009.08移植TE2440II开发板--移植步骤
- Linux常用命令(二十三) - chgrp
- Linux学习<二> 十三单元
- linux移植篇二
- Linux开发十三_hsmmc驱动
- linux-android移植开发
- C语言开发总结(二十三)
- Linux实践工程师学习笔记二十三
- Linux学习笔记(二十三)
- linux学习之二十三---共享内存
- Linux kernel 分析之二十三:文件系统
- Linux学习笔记(二十三、通配符)
- Linux学习(二十三):IO模型
- Linux开发二十二_Qt移植
- mybits配置条件
- 二. Scala编程之简介
- bootstrap日期时间选择器datepicker的使用
- 学生信息的添加与查询 oj
- Linux开发二十三_opencv移植
- hdu4717-(The Moving Points)
- 计算机基础之牛客网刷题第五篇
- 逻辑运算符
- 安装PyCrypto库及其使用(Python3安装)
- Linux开发二十四_mplayer移植
- Bilibili爬虫之爬取小黑屋
- Eclipse+Tomcat+maven+springMVC环境搭建出错总结
- C++对象模型-详述C++对象的内存布局