OpenCV是什麼?
OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
計算機視覺市場巨大而且持續增長,且這方面沒有標準API,如今的計算機視覺軟件大概有以下三種:
1.研究代碼(慢,不穩定,獨立並與其他庫不兼容)
2.耗費很高的商業化工具(比如Halcon, MATLAB+Simulink)
下面是兩個入門小程序:
一、opencv 加載圖片
//第一個小程序,打開一張圖片
void openphoto(){
IplImage * src = cvLoadImage("F:\\1.jpg",1);//0灰色 1 彩色加載圖像 -1 不變
cvNamedWindow("win");
cvShowImage("win", src);
cvWaitKey(0);
cvReleaseImage(&src);
cvDestroyWindow("win");
}
二、opencv 加載播放視頻
注意點:1. 視頻格式需要轉換 支持.avi 可以使用狸窩軟件轉換
2.需要安裝Xvid解碼器。官方網站http://www.xvid.org/
#include "stdafx.h"
#include "highgui.h"
#include "cv.h"
#include "cxcore.h"
//加載一個avi格式的視頻,並且播放
void openAVI(){
cvNamedWindow("avi");
CvCapture * capture = cvCreateFileCapture("D:\\2.avi");//加載視頻的路徑
//CvCapture * capture = cvCreateCameraCapture(-1);//打開攝像頭
IplImage *frame;
while (1)
{
frame = cvQueryFrame(capture);//讀取一幀,即:一張圖片 frame保存這一幀的信息
cvShowImage("avi",frame);
if (!frame)//如果沒有讀到圖像了,就退出
{
break;
}
char c = cvWaitKey(33);//控制幀率 等待33毫秒
if (c == 27)//如果按下ESC ,就退出
{
break;
}
}
//釋放內存
cvReleaseCapture(&capture);
cvDestroyWindow("avi");
}