星期一, 3月 19, 2012

Week 6: Webcam Programming (2)

1. VFW 函式介紹:

a. 視訊參數對話盒 ( Video Dialog Box )

(1) 視訊來源對話盒 ( capDlgVideoSource ):
視訊來源對話盒的功能主要有 3 項: 選擇不同的視訊信號輸入、調整視訊輸入的色調、對比、亮度、飽和度、清晰度... 及調整視訊類比訊號轉成數位訊號的品質設定。
(2) 視訊格式對話盒 ( capDlgVideoFormat ):
透過視訊格式對話盒可以設定視訊裝置擷取的畫面解析度、選擇像素位元深度及壓縮。
(3) 視訊顯示對話盒 ( capDlgVideoDisplay )
若視訊裝置驅動程式提供視訊顯示對話盒, 使與者就可以設定輸出到顯示螢幕的色調、對比、亮度、色彩校正等相關內容,但大部分的 USB 攝影機驅動程式都沒有提供視訊顯示對話盒。
(4) 視訊壓縮對話盒 ( capDlgVideoCompression )
如果電腦安裝了多種視訊壓縮程式,就可以透過視訊壓縮對話盒來選擇所要使用的視訊壓縮程式及其相關設定。

b. 取得視訊擷取視窗狀態 ( capGetStatus )

c. TCapStatus structure

2. 範例程式 Webcam Programming (2)

範例程式 Webcam Programming (2) 所設定的學習目標是了解視訊裝置驅動程式所提供的功能與掌握視訊擷取視窗的狀態。分成 3 個部分:
part A - 取得視訊裝置驅動程式的效能
part B - 開啟各種視訊參數對話盒
part C - 取得視訊擷取視窗狀態

part B - 開啟各種視訊參數對話盒


圖 2-A-4

圖 2-A-4 中的 Dialog 功能列共有 4 項開啟視訊參數對話盒, 所對應的事件處理程序請參考範例程式 Webcam Programming (2), 當程式執行 Webcam | Driver | Capacities 之後, 四項功能表中, 如果驅動程式沒有提供的對話盒會直接被 disable 掉, 如圖 2-A-5。


圖 2-A-5

從 Capacities 所顯示的訊息中, 可以得知驅動程式並沒有提供視訊顯示對話盒。因此功能表中的 Video Display 功能已經被 disable 掉了, 如圖 2-A-6 。


圖 2-A-6

下面三個圖則是分別開啟的視訊來源對話盒、視訊格式對話盒、視訊壓縮對話盒。


圖 2-B-1 視訊來源對話盒


圖 2-B-2 視訊格式對話盒


圖 2-B-3 視訊壓縮對話盒

値得一提的是, 當電腦安裝了任何的視訊編碼器之後, 在視訊壓縮對話盒中就會自動加入所安裝的編碼器供你選擇與進行細部壓縮設定。這邊推薦一個屬於開放原始碼的 MPEG 4 Codec - Xvid 供大家安裝與使用, 關於 Xvid 的相關說明, 詳見維基百科 Xvid 條目。下圖是安裝後, 視訊壓縮對話盒已經提供 Xvid MPEG-4 Codec 的選項了。


圖 2-B-4 視訊壓縮對話盒提供 Xvid MPEG-4 Codec 選項

part C - 取得視訊擷取視窗狀態

請同學利用上課實作時間, 參考 part A 自行完成 part C!
暫不提供範例程式。





首先, 在 tsInformation 分頁中, 新增 18 個 TLabel 元件, 用來顯示視訊擷取視窗的狀態(Capture Window Status), 如圖 2-C-1。注意! hPalCurrent 是用來記錄目前所使用調色盤的 handle, 因此沒有將其顯示出來。


圖 2-C-1

接著, 在 Webcam | Capture Window 功能表中, 新增 Status 子功能, 如圖 2-C-2。


圖 2-C-2

最後, 執行 Webcam | Capture Window | Status 將會顯示視訊擷取視窗的狀態, 如圖 2-C-3。


圖 2-C-3

沒有留言: