Visual Basic .Net (VB.Net) 程式語言案例學習 (12. VB.NET 與 WebCam)
Visual Basic .Net (VB.Net) 程式語言案例學習 (12. VB.NET 與 WebCam)¶
12.1 問題¶
Web Camera一直是個很有趣的應用,現在微軟已經推出百萬畫素的網路攝影機,因此往後將朝向逼近相機等級的畫素前進,這是一股不可擋的趨勢。應用軟體也相當豐富,當然到了多媒體的時代,人們的需求也就越來越多元化,有人用網路攝影機寫網誌,有人用來玩自拍,有人用來監控…等等。因為小巧耐用,便於攜帶,安裝容易。因此花點腦筋就可以有很好玩的用途。本章先起個頭,告訴您如何透過VB.NET呼叫WebCam。並留有一個很豐富的模組檔案,在Camera.vb內有許多控制WebCam的函式,有興趣的讀者可以呼叫來試試看。
12.2 需求¶
表格 12‑1 「VB.NET與WebCam」系統目的分析表
版本:1.0 | 要做什麼 | 不要做什麼(不要做不代表不會做) |
---|---|---|
能做什麼 | (第一格:必要項目) | (第二格:次要項目) |
連接網路攝影機。 | 無。 | |
中斷網路攝影機。 | ||
不能做什麼(不能做代表不需要做) | (第三格:不必要項目) | (第四格:不需要項目) |
無。 | 無。 |
表格 12‑2 「VB.NET與WebCam」系統目標分析表
版本: | 重要 | 不重要 |
---|---|---|
優先 | (重) | (急) |
連接網路攝影機。 | 無。 | |
中斷網路攝影機。 | ||
不急迫 | (輕) | (緩) |
無。 | 無。 |
表格 12‑3 「VB.NET與WebCam」系統規格表
規格項目 | 規格內容 | 備註 |
---|---|---|
主要功能 | 控制網路攝影機。 | … |
使用介面 | 連接網路攝影機。 | … |
中斷網路攝影機。 |
12.3 特色¶
特點就是利用簡單的程式碼,連接網路攝影機,看到畫面,中斷網路攝影機。
12.4 使用工具¶
語言 | 軟體 | 硬體 |
---|---|---|
Visual Basic 2005 | MS Visual Studio 2005 .NET | 支援Video For Windows的網路攝影機,幾乎所有網路攝影機都支援這個規格。 |
12.5 系統架構¶
透過取得PictureBox的Handle作為WebCam影像的展場,點選Button1之後首先連結建立擷取視窗,取得視窗的Handle之後,連結網路攝影機,設定每秒播放率,執行預覽模式,將影像放在PictureBox中。點選Button2之後,就呼叫中斷攝影機的功能。
當然除了這些之外,錄影、拍照、或取Callback…等等。筆者整理在Camera.vb內,有興趣的讀者可以從裡面複製一些程式碼出來試試看。
12.6 程式實作¶
‘點選連接WebCam按鈕 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘建立並取得擷取畫面視窗 lng_Monitor_HCW = capCreateCaptureWindowA("", _ WindowStyles.WS_VISIBLE Or WindowStyles.WS_CHILD, _ 0, 0, 320, CShort(240), PictureBox1.Handle.ToInt32(), 0) ‘連結攝影機 SendMessage(lng_Monitor_HCW, WM_CAP_DRIVER_CONNECT, 0, CType(0, String)) ‘設定播放率,每秒十五張 SendMessage(lng_Monitor_HCW, WM_CAP_SET_PREVIEWRATE, CShort(15), CType(0, String)) ‘啟動預覽模式 SendMessage(lng_Monitor_HCW, WM_CAP_SET_PREVIEW, 1, CType(0, String)) End Sub ‘點選中斷WebCam按鈕 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ‘中斷WebCam SendMessage(lng_Monitor_HCW, WM_CAP_DRIVER_DISCONNECT, 0, CType(0, String)) End Sub
圖 12‑1
12.7 修改重點¶
透過筆者所整理的Camera.vb函式,讀者可以約略由函式名稱來了解用途,WebCam透過Video For Windows所提供的函式,其實功能包羅萬象,有興趣的讀者可以試著做做看。還有一種不錯的題目就是錄製網路教材,現在e-Learning普遍發達,可是透過高解析的攝影機錄製的影像相當大,還必須多一層轉檔的手續,而WebCam的解析度就剛好適合於網路上使用。
12.8 結論¶
除此之外,筆者有撰寫一本數位影像處理技術手冊,是以Visual Basic 6.0為主的影像處理技術的書籍,內容有提到人臉追蹤、頭部點頭識別、手寫辨識…等等。各種影像處理相關的題材,就有用到WebCam去擷取影像來作分析,數位影像在未來將會是應用相當廣的一個元素,足以影響到人類的生活。
Lai Tai-Yu (賴岱佑)