AForge.NET_雙攝像機鏡頭開啟

【第一階段 - 視窗介面佈局設計




擺上  兩個 寬400  高300的  pictureBox

兩個 Button  
一個將來要控制  視訊  開始撥放
一個是用來暫停

【第二階段 - 程式撰寫
快點兩下視窗
進入  Form1_Load 的程式區塊
首先  引入常用  命名空間

接著在進行宣告

private void Form1_Load(object sender, EventArgs e){.........}區塊



private void Form1_Load(object sender, EventArgs e)
        {
            USB_Webcams = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            //可輸入視訊影像超過1台機器時執行
            if (USB_Webcams.Count > 0)
            {
                //Start按鈕為啟動時執行以下動作
                button1.Enabled = true;
                //從第一台視訊擷取畫面
                Cam = new VideoCaptureDevice(USB_Webcams[0].MonikerString);
                //啟動擷取視訊事件
                Cam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);

            }
            else
            {
                button1.Enabled = false;//Start按鈕為停止時執行以下動作
                MessageBox.Show("No video input device is connected.");
            }
        }


Cam_NewFrame  自訂事件

這裡我們要來寫  複製視訊影像串流給另一個pictureBox控建的機制


CanvasImg  乘載的是拷貝自pictureBox1擷取到的webcam即時影像畫面

我們把它的克隆體傳遞給 pictureBox2


這裡要小心需要多引入新的命名空間

由於我們的  ResizeBilinear


是隸屬於   AForge.Imaging.Filters   這個命名空間的


以下是他的架構

public ResizeBilinear(
 int newWidth,
 int newHeight
)


更詳細可參閱這個網頁

http://www.aforgenet.com/framework/docs/html/271edbe0-5481-8882-27c8-97fdd8f12db1.htm



這裡我在開頭又多引入 兩個新的命名空間





緊接著是
button1 (對應到 start)
button2 (對應到 stop)





效果圖





以上是本次介紹!!!!





留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題