2012年3月19日 星期一

HW01

HW01
Webcam Programming (1) 的程式
根據老師上課內容可以輕鬆的做出以上的程式
最後新增選項讓繁複的步驟設成一鍵簡單完成
問題與討論
1標頭檔載入的順序錯了會造成程式無法正常執行:#include <vcl.h>必需在#include <vfw.h>前執行
2點選視窗所自動產生的程式碼如果直接刪除會造成編譯錯誤:需要進行編譯讓沒使用的程式自動刪除

HW01

這是第一次的作業
















如果上課有跟著老師的話
做起來是很輕鬆的
而且老師也都有提供程式碼
所以我們比較需要理解程式碼的意思


上到 Preview Rate 的時候,老師還叫我們試一試其他的數值,所以我在這邊也嘗試了 5 frame/sec的數值,雖然間隔不是變得很大,但還是感覺得出來






因為我覺得每次使用都還要每個都按一次實在是太麻煩了,所以做了一個按鍵可以一次全部啟動,這樣對使用的人也比較人性化點

HW1

這次的作業大部分都是老師上課一步一腳印帶著大家做



事實上要做出來不是很困難



要熟悉作業環境應是前提



這張擷圖是Run好的結果。





這次的作業最大的收穫是Preview Scale的功能



以前不太清楚關於這部分的問題



原來可以將畫面設定成可以隨著擷取視窗大小而調整



以前都以為是固定好好的不能變更~!



其他功能算是比較清楚就不說明囉~







關於程式部分



函數說明的部分有稍微去看了一些



有看懂但是應用部分還是要老師帶才能有個理解。







以上!



HW01


互動視訊的第一步,製作一個顯示視訊的程式

上面的VERSION顯示作業系統安裝的驅動

按鈕"開始"為連結視訊,PREVIEW模式

capPreviewRate(hwndVideo, 33);

旁邊的TEXTBOX可以對影片微秒數進行更改

測試每秒30影格,15,24...等


<-程式截圖

"結束"
capDriverDisconnect(hwndVideo);

"錄影"

從老師的網誌上找到的

capFileSetCaptureFile(hwndVideo,"001.avi");
capCaptureSequence(hwndVideo);

錄製視訊的影片,非常好玩

不過錄製下來的檔案太大了...後來才知道影片壓縮的東西

"存檔"

儲存當前視訊的影像

從範例程式很清楚的明白如何應用函數,也能了解其功能

視訊上的應用非常有趣,很期待更深入的學習








2012年3月15日 星期四

HW1 - Webcam Programming (1)

程式執行畫面





















心得

雖然只是照著老師的課程部落格做,一開始做出來的時候畫面超級模糊(已執行到最後一步了),部落格上寫說裝置啟動自動對焦,上課時老師也有說自動對焦的功能並不是每一個視訊裝置都有,而我的畫面之所以模糊是因為...我的裝置沒有自動對焦功能...哈哈。最後是由於同學的幫助我才知道的。
雖然現在只是課程的起步,但還蠻有趣的,用軟體程式控制視訊裝置。




討論

在學校是用BCB6,可以準確的執行程式。 但我自己的電腦是用2010BCB,在家裡練習了幾次,做完之後是可以執行但是畫面卻一直是黑的,很是不解..!!視訊裝置可以用阿,但是就是跑不出畫面(執行BCB時)。

2012年3月12日 星期一

HW01


工欲善其事,必先利其器。


學期的最終目標是利用視訊結合程式

做出一個互動式的小遊戲

首先,先嘗試使用bcb創造一個視窗


並使其連結視訊鏡頭


如下圖





在開啟視訊功能之前,視窗只會有歡迎文字

其他許多功能例如顯示視訊版本、調整視訊更新頻率還無法使用

開啟視訊之後,如下圖



畫面就像這樣

開啟視訊後,其他的附屬功能就可以用了唷



這次的進度很簡單


就是先稍微熟悉一些入門視訊相關的函式用法


很期待接下的課程喔

以上。







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來打出視訊的程式相當的有趣
這次的作業只是個開始
接下來也希望可以在更深入的了解這方面的程式碼使用方法