Skip to main content

Visual Basic .Net (VB.Net) 程式語言案例學習 (12. VB.NET 與 WebCam)

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

image.png
圖 12‑1

12.7 修改重點

透過筆者所整理的Camera.vb函式,讀者可以約略由函式名稱來了解用途,WebCam透過Video For Windows所提供的函式,其實功能包羅萬象,有興趣的讀者可以試著做做看。還有一種不錯的題目就是錄製網路教材,現在e-Learning普遍發達,可是透過高解析的攝影機錄製的影像相當大,還必須多一層轉檔的手續,而WebCam的解析度就剛好適合於網路上使用。

12.8 結論

除此之外,筆者有撰寫一本數位影像處理技術手冊,是以Visual Basic 6.0為主的影像處理技術的書籍,內容有提到人臉追蹤、頭部點頭識別、手寫辨識…等等。各種影像處理相關的題材,就有用到WebCam去擷取影像來作分析,數位影像在未來將會是應用相當廣的一個元素,足以影響到人類的生活。

image.png
Lai Tai-Yu (賴岱佑)

Popular posts from this blog

Python 日期與時間的處理

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Python 日期與時間的處理

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

Image

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Image

數位影像處理:最佳化處理策略之快速消除扭曲演算法

Image

用10種程式語言做影像二值化(Image binarization)

Visual Basic 6.0 (VB6) 程式語言案例學習 (04. 人事考勤管理系統)

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (07. 收據列印程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (06. 題庫測驗系統)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (03. 場地預約系統)

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (11. 生產線拍照程式)

Image