OpenCV中用於攝像頭視頻讀取的函數說明

1、cvQueryFrame

OpenCV中一個函數cvQueryFrame

從攝像頭或者文件中抓取並返回一幀

IplImage* cvQueryFrame( CvCapture* capture );

capture

視頻獲取結構。

函數cvQueryFrame從攝像頭或者文件中抓取一幀,然後解壓並返回這一幀。 這個函數僅僅是函數cvGrabFrame和 函數cvRetrieveFrame在一起調用的組合。 返回的圖像不可以被用戶釋放或者修改。

cvQueryFrame的參數爲CvCapture結構的指針。用來將下一幀視頻文件載入內存,返回一個對應當前幀的指針。與cvLoadImage不同的是cvLoadImage爲圖像分配內存空間,而cvQueryFrame使用已經在cvCapture結構中分配好的內存。這樣的話,就沒有必要通過cvReleaseImage()對這個返回的圖像指針進行釋放,當CvCapture結構被釋放後,每一幀圖像所對應的內存空間即會被釋放。

2、cvCaptureFromCAM

初始化從攝像頭中獲取視頻


CvCapture* cvCaptureFromCAM( int index );

index

要使用的攝像頭索引。如果只有一個攝像頭或者用哪個攝像頭也無所謂,那使用參數-1應該便可以。

函數給從攝像頭的視頻流分配和初始化CvCapture結構。目前在Windows下可使用兩種接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有兩種接口:V4L和FireWire(IEEE1394)。

釋放這個結構,使用函數cvReleaseCapture


讀攝像頭用:CvCapture* capture=cvCaptureFromCAM(0);//參數也可以是-1,

讀AVI文件演示用: CvCapture* capture=cvCaptureFromFile(“XXX.avi”);


3.cvCreateCameraCapture好像還沒有什麼區別

初始化從攝像頭中獲取視頻

CvCapture* cvCreateCameraCapture( int index );

index

要使用的攝像頭索引。如果只有一個攝像頭或者用哪個攝像頭也無所謂,那使用參數-1應該便可以。

函數cvCreateCameraCapture給從攝像頭的視頻流分配和初始化CvCapture結構。目前在Windows下可使用兩種接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有兩種接口:V4L和FireWire(IEEE1394)。

釋放這個結構,使用函數cvReleaseCapture。

4、CvCapture
視頻獲取結構
typedef struct CvCapture CvCapture;
結構CvCapture 沒有公共接口,它只能被用來作爲視頻獲取函數的一個參數。

這個是一個很重要的結構 以後無論是讀取已有視頻還是從攝像頭獲取都必須用到它
然後的工作就是把視屏顯示出來

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