版权说明:本文系博主个人劳动所得,转载请注明出处!2018-11-17
文章说明:仅仅是个入门版,仅供参考。
OpenCV是一个开源的计算机视觉和机器学习软件库。OpenCV主要为开发计算机视觉程序提供一组公共的底层结构(infrastructure)和加强商业产品中机器的感知能力。OpenCV使用BSD许可证(具体可参见维基百科对于BSD许可证的介绍),它可以被商用并可以修改源代码。
OpenCV库有超过2500个已优化的算法,既包含了经典的也包含了最先进(state-of-the-art)的计算机视觉和机器学习算法。这些算法可以被用来检测和识别人脸,跟踪移动的物体,提取物体的三维模型,从立体相机中产生3D point clouds,可以将图片拼接来生成一张高解析度(resolution)的全景图像,从图像数据库中找到相似性的图像等等等等。OpenCV已经有超过4万7千的用户群体,并且估计下载数量超过1400万。
使用OpenCV的公司有谷歌、雅虎、微软、IBM、索尼、本田、丰田等。使用OpenCV的项目有拼接街景图片,在监控中检测侵扰(一个以色列项目),监视采矿设备(一个中国项目),帮助机器人导航和捡东西(Willow Garage 一个实验室项目),检测游泳池溺水事件(一个欧洲项目)......
OpenCV有C++、Java、Python和Matlab四个版本,支持Windows、Linux、Android和MacOS平台。OpenCV主要倾向于实时的视觉应用程序,当MMX和SSE(MMX和SSE是因特尔开发的单指令多数据流指令集,后者是前者的扩展,具体不展开,有兴趣可自查)可用的时候OpenCV能够很好的去使用这两者的特性。一个全功能(full-feature)的CUDA和OpenCL接口已被开发,有超过500个算法和大约10倍支持这些算法的组建或支持。OpenCV用native C++开发,支持模板,可与STL容器无缝对接。
当下最新的版本是OpenCV 4.0 Release Candidate版本。一个简单的入门代码(图像的读取和显示)如下:
#include"opencv/cv.h"
#include"opencv2/opencv.hpp"
using namespace cv;
//2018-11-17 01:09
//1.打开图片对象显示,设置显示窗为图像大小
//2.将BGR图像转化为灰度图显示,设置显示窗为正方形,大小系统自己指定
int main(){
Mat img = imread("素材/opencv测试图.jpg", IMREAD_COLOR);
namedWindow("显示窗", WINDOW_AUTOSIZE);//窗口自动适应图像大小
imshow("显示窗",img);
cvWaitKey(0);
Mat imgGray;
cvtColor(img, imgGray, COLOR_BGRA2GRAY);
namedWindow("灰度图", WINDOW_NORMAL);//窗口自适应为矩形框
imshow("灰度图", imgGray);
cvWaitKey(0);
system("pause");
return 0;
}
程序运行效果图:
1.PNG 2.PNG
网友评论