這堂課學到不同的角度跟光線可以讓視訊慘生出不一樣的美麗!!!
以下是學到的一些內容:
1.CvCapture
CvCapture是一個Interface的資料結構,為一個資料結構的雛形,無任何的變數型別存在,由
cvCaptureFromCAM(0)來選定Webcam裝置,cvCaptureFromCAM(0)的0代表自動偵測視訊裝
置,如果有兩台以上的Webcam則就用連續兩個cvCaptureFromCAM(0)函式來擷取,接著,就用
while(true)的無窮回圈來捕捉連續影像的圖形畫面,cvQueryFrame()則用來擷取每秒顯示出來的
frame這裡由cvWaitKey(10)來控制擷取時間,每延遲10毫秒捕捉一次視訊畫面,cvWaitKey()為鍵
盤事件,每超過10毫秒則會回傳-1,因此,畫面會因cvWaitKey(10)而延遲10毫秒,接著由無窮回圈
來繼續播放,當鍵盤事件發生的時候則會跳出whlie的無窮回圈.接著就把CvCapture資料結構及
視窗介面資料結構做記憶體的釋放.
2. IplImage
IplImage結構來源於Intel的另外一個函數庫Intel Image Processing Library (IPL),該函數
庫主要是針對圖像處理。
cvCreateCameraCapture()選定視訊裝置編號,給視窗命名
對於兩個視訊裝置二擇一的寫法,cvCreateCameraCapture()是不支援的,如果要將裝置做二擇一
個設定,可以參考後面"cvcam.h"的相關設定.
cvCreateCameraCapture()
其實跟cvCaptureFromCAM()是一樣的,它被OpenCV定義成
#define cvCaptureFromCAM cvCreateCameraCapture
所以,當用cvCaptureFromCAM()會自動取代成cvCreateCameraCapture(),而在視訊裝置的使用
上也大有學問,一般視訊裝置是0是自動偵測,有兩台以上就用函式及它的裝置代號重複呼叫,而它
可以支援各種特殊裝置
cvNamedWindow()
這個副程式,是給視窗化介面命名的副程式,用法如下
cvNamedWindow("視窗名稱",參數);
而它的參數實質上只有一個
#define CV_WINDOW_AUTOSIZE 1 自動調整圖形大小
沒有留言:
張貼留言