你覺得目前課程進度進行的速度如何?
太慢 3 票 ( 14 % )
適中 17 票 ( 80 % )
太快 1 票 ( 4 % )
總投票數: 21 票
投票日期: 2009/03/17 ~ 24
星期二, 3月 24, 2009
Week 6: Callback Function
本週課程的討論主題是關於視訊擷取視窗的 Callback Function。在課堂上, 我們要求同學必須完成如下實驗:
實驗二: 當程式開啟視訊擷取視窗後, 顯示預覽的畫面總數到 Label 上。
// 副程式的宣告部分, 請將此行放到全域變數宣告的區域中
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, PVIDEOHDR lpvhdr );
int iFrameCount=0;
// 設定 Callback function 與 視訊擷取視窗之間的連結, 請將此行放到開啟視訊擷取視窗, 並開始 preview 的指令後
capSetCallbackOnFrame(hwndCapture, &FrameCallBack);
// Callback Function 的主體程式 (我們要程式自動執行的程式)
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, PVIDEOHDR lpvhdr )
{
iFrameCount++;
Form1->lblLabel1->Caption = AnsiString(iFrameCount);
return (0);
}
實驗二: 當程式開啟視訊擷取視窗後, 顯示預覽的畫面總數到 Label 上。
// 副程式的宣告部分, 請將此行放到全域變數宣告的區域中
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, PVIDEOHDR lpvhdr );
int iFrameCount=0;
// 設定 Callback function 與 視訊擷取視窗之間的連結, 請將此行放到開啟視訊擷取視窗, 並開始 preview 的指令後
capSetCallbackOnFrame(hwndCapture, &FrameCallBack);
// Callback Function 的主體程式 (我們要程式自動執行的程式)
LRESULT CALLBACK FrameCallBack( HWND hwndCapture, PVIDEOHDR lpvhdr )
{
iFrameCount++;
Form1->lblLabel1->Caption = AnsiString(iFrameCount);
return (0);
}
星期一, 3月 16, 2009
Week 5: 將影像讀入陣列之中
本週要請同學思考的問題是如何將存於影像物件之中的色彩值, 讀入到陣列變數之中, 以供程式處理之用。
目前, 大部分同學已經會從顯示在螢幕上的視訊, 擷取一個畫面到影像物件之中, 為了提升對影像內容的分析效能, 有必要進一步影像元件中的色彩內容放到陣列中, 讓程式可以直接分析。
第一個方法是使用 Canvas 元件的 Pixels Property (TCanvas::Pixels), Pixels 的資料型態為 TColor datatype, 因此, 可以用如下的程式碼, 將色彩值讀入到陣列 tcColorMatrix 之中。
for (i=0;i<iImageHeight;i++)
for (j=0;j<iImageWidth;j++)
tcColorMatrix1[i][j] = Image1->Canvas->Pixels[j][i];
第二個方法是透過 Bitmap 元件的 ScanLine Property 來取得存放每一列色彩值的起始指標, 再透過該指標依序取得每一個像素的色彩值。
Byte *ptr; // 宣告指標變數;
for (i=0;i<iImageHeight;i++)
{
ptr = (BYTE *) Image1->Picture->Bitmap->ScanLine[i];
k = 0;
for (j=0;j<iImageWidth;j++)
{
tcColorMatrix1[i][j] = (TColor) RGB(ptr[k+2],ptr[k+1],ptr[k]);
k = k + 3;
}
接下來, 同學可以將之前所寫的程式, 改寫成使用 Scanline Property 的方式, 以加快程式的執行效能。
範例程式 SampleProgram5.txt
目前, 大部分同學已經會從顯示在螢幕上的視訊, 擷取一個畫面到影像物件之中, 為了提升對影像內容的分析效能, 有必要進一步影像元件中的色彩內容放到陣列中, 讓程式可以直接分析。
第一個方法是使用 Canvas 元件的 Pixels Property (TCanvas::Pixels), Pixels 的資料型態為 TColor datatype, 因此, 可以用如下的程式碼, 將色彩值讀入到陣列 tcColorMatrix 之中。
for (i=0;i<iImageHeight;i++)
for (j=0;j<iImageWidth;j++)
tcColorMatrix1[i][j] = Image1->Canvas->Pixels[j][i];
第二個方法是透過 Bitmap 元件的 ScanLine Property 來取得存放每一列色彩值的起始指標, 再透過該指標依序取得每一個像素的色彩值。
Byte *ptr; // 宣告指標變數;
for (i=0;i<iImageHeight;i++)
{
ptr = (BYTE *) Image1->Picture->Bitmap->ScanLine[i];
k = 0;
for (j=0;j<iImageWidth;j++)
{
tcColorMatrix1[i][j] = (TColor) RGB(ptr[k+2],ptr[k+1],ptr[k]);
k = k + 3;
}
接下來, 同學可以將之前所寫的程式, 改寫成使用 Scanline Property 的方式, 以加快程式的執行效能。
範例程式 SampleProgram5.txt
星期四, 3月 12, 2009
News: 3D 棒球卡 球員栩栩如生
中時電子報 2009/03/11 諶悠文 綜合報導
原始新聞報導
一九五○年代,首屈一指的 Topps 公司賣出許多印有棒球員照片和各項比賽紀錄的棒球卡,為球賽增添生氣,如今它更打算推出 3D Live 立體棒球球員卡,要為棒球卡增添生命力。
《紐約時報》報導,九日開始,球卡收藏者只要拿著一張 Topps 3D Live 棒球卡,放在網路攝影機鏡頭前,就會在電腦螢幕上看到出現一個球員的三度空間影像。
在鏡頭前,卡友旋轉手中的球卡,螢幕上的人物也會跟著全方位旋轉。業者運用的是一種將實際與虛擬影像結合的「擴增實境」(augmented reality)互動技術。
科幻影集《星艦迷航記》有一句經典台詞:「傳送我吧,史考特!」(Beam me up, Scotty)。Topps公司主管數位科技的葛林姆斯說:「這就是『傳送我吧,史考特』版本的棒球卡,將會吸引小孩搶購。」現在棒球卡收藏者多半是男孩。
以前大家迷棒球明星,會瘋狂收藏棒球球員套卡,棒球卡風靡一時,如今收藏家可不花大錢輕鬆地從網路搜尋到各種運動相關資料,棒球卡也不再吃香。
根據「職棒大聯盟所有權」公司提供資料,曾高達十億美元的各類運動卡市場,現在每年銷售額萎縮到只剩兩億美元。二○○七年,前迪士尼公司執行長艾斯納旗下的兩家公司 Tornante 及 Madison Dearborn Partners,用三八五○萬美元收購 Topps,並構思讓運動卡與網路時代結合。
Topps 需要推陳出新,「擴增實境」技術便是其法寶之一。透過法國公司「Total Immersion」開發的「擴增實境」技術 ,擁有 3D Live 卡的卡友不只可從電腦看到球員的 3D 影像,還可利用電腦鍵盤,玩基本的傳接和打擊棒球的遊戲。這項技術已經運用在主題公園,以及一部分的汽車設計作業。
艾斯納表示,預計今年 Topps 將出貨一千萬盒的「Series 1」 (十二張卡售價兩美元),以及 Topps Attax 卡 (五張售價一美元)。他認為 Topps 做的不是運動卡買賣,而是一個具有文化、圖騰意義的體制,與迪士尼公司沒有什麼不同,它帶給民眾一種美好的情緒反應,那是普魯斯特式的感受。
原始新聞報導
一九五○年代,首屈一指的 Topps 公司賣出許多印有棒球員照片和各項比賽紀錄的棒球卡,為球賽增添生氣,如今它更打算推出 3D Live 立體棒球球員卡,要為棒球卡增添生命力。
《紐約時報》報導,九日開始,球卡收藏者只要拿著一張 Topps 3D Live 棒球卡,放在網路攝影機鏡頭前,就會在電腦螢幕上看到出現一個球員的三度空間影像。
在鏡頭前,卡友旋轉手中的球卡,螢幕上的人物也會跟著全方位旋轉。業者運用的是一種將實際與虛擬影像結合的「擴增實境」(augmented reality)互動技術。
科幻影集《星艦迷航記》有一句經典台詞:「傳送我吧,史考特!」(Beam me up, Scotty)。Topps公司主管數位科技的葛林姆斯說:「這就是『傳送我吧,史考特』版本的棒球卡,將會吸引小孩搶購。」現在棒球卡收藏者多半是男孩。
以前大家迷棒球明星,會瘋狂收藏棒球球員套卡,棒球卡風靡一時,如今收藏家可不花大錢輕鬆地從網路搜尋到各種運動相關資料,棒球卡也不再吃香。
根據「職棒大聯盟所有權」公司提供資料,曾高達十億美元的各類運動卡市場,現在每年銷售額萎縮到只剩兩億美元。二○○七年,前迪士尼公司執行長艾斯納旗下的兩家公司 Tornante 及 Madison Dearborn Partners,用三八五○萬美元收購 Topps,並構思讓運動卡與網路時代結合。
Topps 需要推陳出新,「擴增實境」技術便是其法寶之一。透過法國公司「Total Immersion」開發的「擴增實境」技術 ,擁有 3D Live 卡的卡友不只可從電腦看到球員的 3D 影像,還可利用電腦鍵盤,玩基本的傳接和打擊棒球的遊戲。這項技術已經運用在主題公園,以及一部分的汽車設計作業。
艾斯納表示,預計今年 Topps 將出貨一千萬盒的「Series 1」 (十二張卡售價兩美元),以及 Topps Attax 卡 (五張售價一美元)。他認為 Topps 做的不是運動卡買賣,而是一個具有文化、圖騰意義的體制,與迪士尼公司沒有什麼不同,它帶給民眾一種美好的情緒反應,那是普魯斯特式的感受。
星期三, 3月 11, 2009
星期二, 3月 10, 2009
Week 4: 取得視訊裝置驅動程式的資訊與效能
1. WebCam Programming
a. 取得視訊裝置驅動程式的資訊
b. 取得視訊裝置驅動程式的效能
2. 範例程式 SampleProgram2.txt 說明:
a. 取得裝置內容代碼 GetDC
在我們所設計的靜態影像擷取之實驗中, 我們在範例程式 SampleProgram2.txt 使用了以下的 GetDC 指令,
hDC = GetDC(pnlCapture->Handle);
這行指令的目的就是取得 顯示裝置內容 (display device context) 的代碼, 由於我們範例程式 SampleProgram1.txt 是將視訊顯示在 pnlCapture 物件中, 我們使用 GetDC 指令來獲知這個顯示裝置的代碼, 因此 pnlCapture->Handle 為 GetDC 函式的輸入參數。
3. 如何計算兩個色彩 TColor type 變數之間的差異?
假設, 我們宣告了兩個變數, 如下:
TColor tcColor1, tcColor2;
我們該如何計算 tcColor1 與 tcColor2 之間的距離呢?
TColor 資料型態為長度 4 個位元組的 enum (列舉) 資料型態, 除了最高位元組保留沒用之外, 接著由高至低依序為藍、綠、紅的色彩值。使用 GetBValue, GetGValue, GetRValue, 三個函數, 分別可以取出藍、綠、紅的色彩值。
假設 tcColor1 = 0x00ff0000;
ucB1 = GetBValue(tcColor1);
那麼 ucB1 的值就是 0xff = 255;
如果我們將一個色彩值視為一個 (R, G, B) 的三維向量, 那每一個色彩值就是三度空間中的一個點, 要計算兩個色彩值之間的差異, 就可以計算這兩個色彩值在三度色彩空間中的距離, 換句話說, 就是計算空間中兩點的直線距離, 也就是 歐基里德距離 ( Euclidean Distance )。
範例程式 SampleProgram3.txt
a. 取得視訊裝置驅動程式的資訊
b. 取得視訊裝置驅動程式的效能
2. 範例程式 SampleProgram2.txt 說明:
a. 取得裝置內容代碼 GetDC
在我們所設計的靜態影像擷取之實驗中, 我們在範例程式 SampleProgram2.txt 使用了以下的 GetDC 指令,
hDC = GetDC(pnlCapture->Handle);
這行指令的目的就是取得 顯示裝置內容 (display device context) 的代碼, 由於我們範例程式 SampleProgram1.txt 是將視訊顯示在 pnlCapture 物件中, 我們使用 GetDC 指令來獲知這個顯示裝置的代碼, 因此 pnlCapture->Handle 為 GetDC 函式的輸入參數。
3. 如何計算兩個色彩 TColor type 變數之間的差異?
假設, 我們宣告了兩個變數, 如下:
TColor tcColor1, tcColor2;
我們該如何計算 tcColor1 與 tcColor2 之間的距離呢?
TColor 資料型態為長度 4 個位元組的 enum (列舉) 資料型態, 除了最高位元組保留沒用之外, 接著由高至低依序為藍、綠、紅的色彩值。使用 GetBValue, GetGValue, GetRValue, 三個函數, 分別可以取出藍、綠、紅的色彩值。
假設 tcColor1 = 0x00ff0000;
ucB1 = GetBValue(tcColor1);
那麼 ucB1 的值就是 0xff = 255;
如果我們將一個色彩值視為一個 (R, G, B) 的三維向量, 那每一個色彩值就是三度空間中的一個點, 要計算兩個色彩值之間的差異, 就可以計算這兩個色彩值在三度色彩空間中的距離, 換句話說, 就是計算空間中兩點的直線距離, 也就是 歐基里德距離 ( Euclidean Distance )。
範例程式 SampleProgram3.txt
星期二, 3月 03, 2009
Week 3: 靜態影像擷取
1. 靜態影像擷取之簡單實驗
如果我們希望所開發的應用程式有能力可以理解視訊內容, 首先必須要先將視訊內容(一張一張的靜態影像)儲存到電腦的記憶體中(程式所宣告的陣列變數), 然後我們才可以開始分析視訊內容。因此, 我們設計以下的實驗, 希望同學可以完成。
實驗目的: 希望同學可以感受到當物件出現在畫面中時, 如何寫一個簡單的程式來感應此事件的發生!
a. 在程式畫面中拉出兩個按鈕 A、B。
按鈕 A 的功能是儲存視訊的靜態影像到影像陣列 A 中。
按鈕 B 的功能是儲存視訊的靜態影像到影像陣列 B 中。
b. 在程式畫面中拉出第三個按鈕 C, 功能是計算兩個陣列的平均差異值。
實驗一: 攝影機拍攝內容不變, 連續拍攝 A 與 B, 計算其平均差異。
實驗二: 先按 A 用攝影機拍攝一張照片儲存到陣列 A 後, 然後放置一物體到攝影機前, 再按 B 取得影像陣列 B 內容, 最後計算兩個陣列的平均差異。
範例程式下載 : SampleProgram2.txt
2. C++ Programming
a. TColor 資料型態
b. TCanvas
c. 動態宣告二維陣列
d. TCanvas::CopyRect method
e. VFW: 靜態影像擷取
3. WebCam: Driver 下載
網路硬碟 http://webhd.mcu.edu.tw
分享名稱: CAM2008
如果我們希望所開發的應用程式有能力可以理解視訊內容, 首先必須要先將視訊內容(一張一張的靜態影像)儲存到電腦的記憶體中(程式所宣告的陣列變數), 然後我們才可以開始分析視訊內容。因此, 我們設計以下的實驗, 希望同學可以完成。
實驗目的: 希望同學可以感受到當物件出現在畫面中時, 如何寫一個簡單的程式來感應此事件的發生!
a. 在程式畫面中拉出兩個按鈕 A、B。
按鈕 A 的功能是儲存視訊的靜態影像到影像陣列 A 中。
按鈕 B 的功能是儲存視訊的靜態影像到影像陣列 B 中。
b. 在程式畫面中拉出第三個按鈕 C, 功能是計算兩個陣列的平均差異值。
實驗一: 攝影機拍攝內容不變, 連續拍攝 A 與 B, 計算其平均差異。
實驗二: 先按 A 用攝影機拍攝一張照片儲存到陣列 A 後, 然後放置一物體到攝影機前, 再按 B 取得影像陣列 B 內容, 最後計算兩個陣列的平均差異。
範例程式下載 : SampleProgram2.txt
2. C++ Programming
a. TColor 資料型態
b. TCanvas
c. 動態宣告二維陣列
d. TCanvas::CopyRect method
e. VFW: 靜態影像擷取
3. WebCam: Driver 下載
網路硬碟 http://webhd.mcu.edu.tw
分享名稱: CAM2008
星期日, 3月 01, 2009
bnext: Panasonic 網路攝影機 零距離監控管理
數位時代網站 Market 市場情報 2009/02/23
原始報導連結
邁入 2009 年,您還在煩惱如何提升管理績效、或是經常擔心家裡不夠安全嗎?
Panasonic 全新推出的網路攝影機,讓您在任何時間地點,都可透過網路攝影機對辦公室或家中進行遠端監控,輕鬆掌握一切狀況。
降低成本,提升效率,讓您擁有無限商機
藉由 Panasonic 網路攝影機獨一無二的遠端監視及控制功能,您能隨時掌握公司狀況,利用「雙向語音溝通」馬上就能解決即時問題,多台攝影機可同時監看多家分店,讓您用最少的人管理最多的店,錄影畫面還可用來分析來客數及了解顧客反應,以提升服務的品質,Panasonic 網路攝影機讓您在 2009 年贏得更漂亮!
居家安全不容萬一,您有權選擇真正的安全
有了 Panasonic 網路攝影機,您外出時一樣好安心,經由手機可監看屋內的任何角落,內建 LED 亮燈加強照明,即使角落不夠明亮,也能傳回清晰的影像,若畫面突然有所變動時,會即時回傳警報畫面,讓您不需無時無刻盯著螢幕看,不同於昂貴的保全系統,Panasonic 網路攝影機提供了一個經濟又安全的全面保障。
產品資訊請洽:台松電器(02)2227-6100
http://www.panasonic.com.tw
原始報導連結
邁入 2009 年,您還在煩惱如何提升管理績效、或是經常擔心家裡不夠安全嗎?
Panasonic 全新推出的網路攝影機,讓您在任何時間地點,都可透過網路攝影機對辦公室或家中進行遠端監控,輕鬆掌握一切狀況。
降低成本,提升效率,讓您擁有無限商機
藉由 Panasonic 網路攝影機獨一無二的遠端監視及控制功能,您能隨時掌握公司狀況,利用「雙向語音溝通」馬上就能解決即時問題,多台攝影機可同時監看多家分店,讓您用最少的人管理最多的店,錄影畫面還可用來分析來客數及了解顧客反應,以提升服務的品質,Panasonic 網路攝影機讓您在 2009 年贏得更漂亮!
居家安全不容萬一,您有權選擇真正的安全
有了 Panasonic 網路攝影機,您外出時一樣好安心,經由手機可監看屋內的任何角落,內建 LED 亮燈加強照明,即使角落不夠明亮,也能傳回清晰的影像,若畫面突然有所變動時,會即時回傳警報畫面,讓您不需無時無刻盯著螢幕看,不同於昂貴的保全系統,Panasonic 網路攝影機提供了一個經濟又安全的全面保障。
產品資訊請洽:台松電器(02)2227-6100
http://www.panasonic.com.tw
訂閱:
文章 (Atom)