2012年3月7日 星期三

HW01


成品↑

首先呢 關於這次互動視訊課程的第一個作業
也就是先將簡單基本的可以開出一個視訊顯示視窗
而當然也是使用我們比較熟悉的BCB

一開始最簡單的就事要先從介面設計著手
先拉取一個Panel也就說想要將我們視訊想要放取的位置
當然個大小也是可以隨意我們調整的
從左邊的屬性 找到Height、Width可以很容易的改變
我自己的畫調整成320*480好讓畫面可以比較協調一點
在下來想要可以有上面的介面按鈕的話就必須要使用下面這個↓
使用這個原件後就可以讓我們輕鬆的設定上方的按鈕
而當然為了可以讓自己更清楚了解按鈕的功用
輸入中文也是可以的!!

接下來就是進入寫程式的部分
一開始有個最最最重要的部分
也就是"標頭擋"
而這邊使用的特殊標頭擋是#include
也就是Video for Window的縮寫 接下去程式碼的部分
int iCapWindowWidth = 480; int iCapWindowHeight = 320;
這個是我用來設定說我顯示在Panel的大小視窗一樣也是可以隨自己喜好調整

之後就會出現黑色的視訊框框
因為現在只有開啟的部分所以之後還必須要有連結的部分

也就是以下這段程式碼 capDriverConnect(hwndVideo, dwDriverIndex);
可以將視訊裝置與視訊截取視窗連結起來也就是driver的意思

之後就會出現視訊截取的畫面
接下來調整成Preview模式也就差不多塊大功告成了

最後一個步驟就是必須選擇我所想要的影格速率
在老師給的程式範例中有兩個速率一個是
每秒30影格、15影格
而每秒30影格的範例程式為下
capPreviewRate(hwndVideo, 33);
一開始實在非常好奇為什麼後面的數字為33
之後發現原來後面的那個數字是指miliseconds(微秒數)
也就是說每33微秒有一個影格
1000/33的話就是大約為30個影格/秒
既然知道了這個意思那就可以隨心所欲的調整自己想要的速率
所以我又自己增加了三個速率
capPreviewRate(hwndVideo, 16);60影格/秒
capPreviewRate(hwndVideo, 500);2影格/秒
capPreviewRate(hwndVideo, 1000);1影格/秒

發現真的很有趣
因為影格越少看到的畫面也就越像是跳躍的方式
而影格越多畫面也就看起來越流利相當的連貫

這次第一次的作業
雖然大多都是老師的範例程式碼
但是經過好好的研究練習後大約也都懂大概如何使用
第一次使用BCB來打出視訊的程式相當的有趣
這次的作業只是個開始
接下來也希望可以在更深入的了解這方面的程式碼使用方法


1 則留言:

YKLee 提到...

不同的攝影機, 每秒可顯示的畫面數目是有上限的。大部分的攝影機是30fps。