AForge.NET_雙攝像機鏡頭開啟
【第一階段 - 視窗介面佈局設計】
擺上 兩個 寬400 高300的 pictureBox
兩個 Button
一個將來要控制 視訊 開始撥放
一個是用來暫停
【第二階段 - 程式撰寫】
快點兩下視窗
進入 Form1_Load 的程式區塊
首先 引入常用 命名空間
接著在進行宣告
private void Form1_Load(object sender, EventArgs e){.........}區塊
Cam_NewFrame 自訂事件
這裡我們要來寫 複製視訊影像串流給另一個pictureBox控建的機制
CanvasImg 乘載的是拷貝自pictureBox1擷取到的webcam即時影像畫面
我們把它的克隆體傳遞給 pictureBox2
這裡要小心需要多引入新的命名空間
由於我們的 ResizeBilinear
是隸屬於 AForge.Imaging.Filters 這個命名空間的
以下是他的架構
http://www.aforgenet.com/framework/docs/html/271edbe0-5481-8882-27c8-97fdd8f12db1.htm
這裡我在開頭又多引入 兩個新的命名空間
緊接著是
button1 (對應到 start)
button2 (對應到 stop)
效果圖
以上是本次介紹!!!!
擺上 兩個 寬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)
效果圖
以上是本次介紹!!!!
留言
張貼留言