一、OpenCV是什么
Open Source Computer Vision (开源计算机视觉库) OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
二、OpenCV主要模块
core:简洁的核心模块,定义了基本的数据结构,包括稠密多维数组 Mat 和其他模块需要的基本函数。
imgproc:图像处理模块,包括线性和非线性图像滤波、几何图像转换 (缩放、仿射与透视变换、一般性基于表的重映射)、颜色空间转换、直方图等等。
video:视频分析模块,包括运动估计、背景消除、物体跟踪算法。
calib3d:包括基本的多视角几何算法、单体和立体相机的标定、对象姿态估计、双目立体匹配算法和元素的三维重建。
features2d:包含了显著特征检测算法、描述算子和算子匹配算法。
objdetect:物体检测和一些预定义的物体的检测 (如人脸、眼睛、杯子、人、汽车等)。
ml:多种机器学习算法,如 K 均值、支持向量机和神经网络。
highgui:一个简单易用的接口,提供视频捕捉、图像和视频编码等功能,还有简单的 UI 。
gpu:OpenCV 中不同模块的 GPU 加速。
ocl:使用 OpenCL 实现的通用算法 。一些其它辅助模块,如 Python 绑定和用户贡献的算法。
三、OpenCV的优点
1. OpenCV是一个基于C/C++语言的开源图像处理函数库
2. 其代码都经过优化,可用于实时处理图像
3. 具有良好的可移植性
4. 可以进行图像/视频载入、保存和采集的常规操作
5. 具有低级和高级的应用程序接口(API)
6. 提供了面向Intel IPP高效多媒体函数库的接口,可针对你使用的Intel CPU优化代码,提高程序性能
四、OpenCV在Ubuntu下的安装
1. Install OpenCV related dependency
eirot@ubuntu64:~$ sudo apt-get install build-essential cmake pkg-config libopencv-dev ffmpeg libjpeg-dev libavcodec-dev libavformat-dev python-dev python-numpy libfaac-dev
2. Download opencv-3.0.0.zip
https://github.com/Itseez/opencv/archive/3.0.0.zip
3. Unzip opencv-3.0.0.zip
eirot@ubuntu64:~/MyDev/Opencv$ unzip opencv-3.0.0.zip
4. Go to the directory and show it
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0$ ll
5. Make directory of release
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0$ mkdir release
6. Go to the release directory
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/release$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON BUILD_EXAMPLES=ON ..
7. Make it
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/release$ make
8. Make install it
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/release$ sudo make install
9. Add the library path /usr/local/lib to system
eirot@ubuntu64:/$ vim etc/ld.so.conf
10. Reload the configuration
eirot@ubuntu64:/$ sudo ldconfig
五、OpenCV基本使用
我们这里只是展示一张出经典的Lena图 \(^o^)/~
1. Create a program using OpenCV
//C++ #include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv ) { if ( argc != 2 ) { printf("usage: DisplayImage.out <Image_Path>\n"); return -1; } Mat image; Mat gray_img; image = imread( argv[1], 1 ); cvtColor(image,gray_img,COLOR_BGR2GRAY); if ( !image.data ) { printf("No image data \n"); return -1; } namedWindow("Display Image", WINDOW_AUTOSIZE ); imshow("Display Image", gray_img); waitKey(0); return 0; }
2. Create CMake compiled file
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/showlena$ vim Cmakelists.txt
cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( DisplayImage DisplayImage.cpp ) target_link_libraries( DisplayImage ${OpenCV_LIBS} )
3. Compile the project
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/showlena$ cmake .
4. Make the project
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/showlena$ make
5. Execute the program
eirot@ubuntu64:~/MyDev/Opencv/opencv-3.0.0/showlena$ ./DisplayImage lena.jpg
六、一些有用的链接
OpenCV Homepage: http://opencv.org/
OpenCV Q&A forum: http://answers.opencv.org/
OpenCV online documentation: http://docs.opencv.org/
OpenCV github : https://github.com/Itseez/opencv
Willow Garage : http://www.willowgarage.com/
Install-OpenCV-Ubuntu-shell : https://github.com/jayrambhia/Install-OpenCV/tree/master/Ubuntu
Lena story: http://blog.csdn.net/luckydongbin/article/details/4453718
OpenCV 中文网站: http://www.opencv.org.cn/
Cvchina 计算机视觉论坛: http://cvchina.net/