【OP001】opencv強大的視頻圖形圖像處理

OpenCV是什麼?

  OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。

爲什麼有OpenCV?

計算機視覺市場巨大而且持續增長,且這方面沒有標準API,如今的計算機視覺軟件大概有以下三種:

1.研究代碼(慢,不穩定,獨立並與其他庫不兼容)

2.耗費很高的商業化工具(比如Halcon, MATLAB+Simulink)

3.依賴硬件的一些特別的解決方案(比如視頻監控,製造控制系統醫療設備)這是如今的現狀。而標準的API將簡化計算機視覺程序和解決方案的開發。OpenCV致力於成爲這樣的標準API。OpenCV致力於真實世界的實時應用,通過優化的C代碼的編寫對其OpenCV與其它視覺函數庫性能對比執行速度帶來了可觀的提升,並且可以通過購買Intel的IPP高性能多媒體函數庫(Integrated Performance Primitives)得到更快的處理速度。右圖爲OpenCV與當前其他主流視覺函數庫的性能比較。


下面是兩個入門小程序:

一、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"); 
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章