把原本用手指觸動鍵盤的節奏遊戲
轉換成透過視訊來和身體作互動
程式部分
我分成三個部分做處理
第一部分
Auto:
先把整個視訊的設定都把他調整好
然後右上角有個 5
表示倒數5秒後開始取背景影像
而做到後面時 才發現需要利用到鏡射
上網搜尋了一下 都是OpenCV的資料
只好自己寫了 利用Swap把左右兩邊的像素作互換
結果是成功 只是影像邊緣會出現鋸齒狀 不過影響不大
第二部分
Load Image:
這部分就跟作業像框一樣
選好自己所做好的圖 載入圖片就行
第三部分
Start:
透過老師的 程式範例五 來把影像轉換成二元圖
Threshold預設為1600 結果不會太差
而重要部分是觸動虛擬按鍵的判斷
因為我六個按鍵 所以分成個六個區塊來處理
設了6個Count 來算出二元影像中 各區塊的白色pixel有多少個
當白色pixel數目達到某個數值後 便啟動按鍵 (數值預設為50 位於右下角)
利用keybd_event搭配鍵盤虛擬碼便能啟動某按鍵
例如: 左 keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
把三個部分完成後
後面就是不斷地做測試
像是6個區塊有稍做調整
以及人需做在哪個位置會比較好
實際操作影片
心得:
這次的成品其實跟最初的構想不太一樣
像是原本的構想按鍵畫面和程式構想部分
由於在中間按鍵容易受到身體的干擾
原本有做套於手指 以利判斷的小道具
效果不大 所以最後不採用
而把按鍵都調到最上面
另外
原本程式是想利用膚色做判斷
而改成用二元圖判斷比較穩定
這程式應用到的一些功能 老師上課和範例程式都有講到
所以認真上課 跟 作業須花時間去做 還滿重要的
而pixel的處理方面要寫過影像處理的作業 會比較清楚
這課程學到許多跟視訊相關的應用
透過設計遊戲專案 也把學到的東西都應用上了
還滿有成就感的
雖然程式還是有小不穩定
沒有留言:
張貼留言