OpenCV是什么
OpenCV的全称是:Open Source Computer Vision Library。
- OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
指令简易安装方法
以下步骤已经过Ubuntu 10.04测试,但也应该与其他发行版一起使用。
所需包
GCC 4.4.x或更高版本
CMake 2.8.7或更高版本
Git
GTK + 2.x或更高版本,包括头文件(libgtk2.0-dev)
pkg-config
Python 2.6或更高版本以及Numpy 1.5或更高版本的开发者软件包(python-dev,python-numpy)
ffmpeg或libav开发包:libavcodec-dev,libavformat-dev,libswscale-dev
[可选] libtbb2 libtbb-dev
[可选] libdc1394 2.x
[可选] libjpeg-dev,libpng-dev,libtiff-dev,libjasper-dev,libdc1394-22-dev
[可选] CUDA Toolkit 6.5或更高版本
可以使用终端和以下命令或使用Synaptic Manager安装软件包:
参考网址:https://www.w3cschool.cn/opencv/opencv-sjw628u6.html
嵌入式环境安装与配置+源码cmake编译
在nanopi m3上测试过,可以运行opencv。
具体可以参考opencv提供的安装文档。
需要的软件包
GCC 4.4或更高
CMake 2.8.7或更高
Git
GTK+2.x或更高,并包含头文件(libgtk2.0-dev)
pkg-config
Python 2.6或者更高和Numpy1.5或者更高的开发包(python-dev, python-numpy)
ffmpeg或者libav开发包:libavcode-dev、libavformate-dev、libswscale-dev
键入以下代码获取。
//进入root
su root
//此处输入密码,nanopi的debain系统默认密码为fa
获取安装包,需要一段时间。
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
- 获取OpenCV源代码
安装git
apt-get git
apt-get install git
你可以使用最新的稳定版本,或者也可以从Git repository抓取最新快照。
例如:
cd ~/<my_working_directory>//建立一个opencv的安装路径,如 /home/fa/opencv3
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
即可得到opencv的库在/home/fa/opencv3下
有一个opencv和opencv_contrib
- 通过CMake使用源代码构建OpenCV
创建一个临时目录,我们标注为< cmake_build_dir>,这里将被放入生成的Makefile文件、项目文件、还有object文件和编译出的二进制文件都会放到这里面。
例如:
cd ~/opencv //在当前目录下执行,如/home/fa/opencv3/下进入opencv
mkdir build
cd build
配置运行cmake [< some optional parameters>]
例如:
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. //注意路径
此处注意:Use cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local … , without spaces after -D if the above example doesn’t work.上句指令-D后没有空格
或者cmake-gui:
设置完整的OpenCV源码路径,例如/home/user/opencv
设置完整的< cmake-build_dir>路径,例如/home/user/opencv/build
设置可选参数
运行‘Configure’
运行‘Generate’
参数说明:
编译类型:CMAKE_BUILD_TYPE=Release\Debug
一起编译的opencv_contrib模块设置OPENCV_EXTRA_MODULES_PATH到< path to opencv_contrib/modules/>
设置BUILD_DOCS用于产生文档。
设置BUILD_EXAMPLES用来编译所有的例子。
- Build编译
From build directory execute make, it is recommended to do this in several threads
从创建的目录执行make,建议使用多线程执行:
make -j7 # runs 7 jobs in parallel//此处为多核心编译
注意,在实际使用nanopi时不建议使用多线程编译,会出现报错,建议只make编译。时间大约不到一小时即可完成。
例如,将上面指令改为下面
make
现在,opencv已经在Linux上安装成功了。
参考文档:
opencv原安装文档:
https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html
加载一张图片
opencv在Linux上运行,我使用的是debain系统在nanopi m3上跑,测试可行。
mkdir /opencv_test //在opencv的路径下建立目录
cd /home/fa/opencv3/opencv_test
mkdir cvdisimage //建立一个该项目的目录
touch cvdisimage.cpp //建立一个c文件
touch CMakeLists.txt //建立一个cmake的编译文档
利用ssh文件从windows传输一张001.jpg的图片到/home/fa/opencv3/opencv_test/cvdisimage目录下
ls //可以看到有三个文件cvdisimage.cpp,001.jpg,CMakeLists.txt
进入cvdisimage.cpp编辑
vi cvdisimage.cpp
键入以下代码
保存退出后,进入CMakeLists.txt
vi CMakeLists.txt
键入以下代码
注意,其中#后内容可以不键入,注释掉了,注意路径!
具体参考cmakelists.txt的编辑配置方法。
cmake . //cmake编译
make //make编译生成执行文件
一切成功后,键入
./cvdisimage 001.jpg
即可看到加载出的图像。
加载一段视频
-
按照之前的内容,在debain系统的nanopi上运行测试成功
-
在/home/fa/opencv3/opencv_test的路径下建立一个目录
mkdir cvdisframe //建立工作目录
- 依然在该目录下新建cvdisframe.cpp和CMakeLists.txt两个文件。
- 在windows下通过ssh传输linux下/home/fa/opencv3/opencv_test/cvdisframe一段视频。
视频命名为002.mp4
vi cvdisframe.cpp
编辑c文件如下内容:
vi CMakeLists.txt
编辑txt如下内容:
cmake .
make
编译成功后
./cvdisframe 002.mp4
即可看到视频流播放。
注意cmakelists.txt的编辑方式。