基本架構也是魔改範例程式
直接在Timer2上動點手腳
利用的原理也是計算影像矩陣中的RGB數來做出反應
我選擇最簡易的數量判斷方式
由於BitmapInfoHead.biHeight,BitmapInfoHead.biWidth兩者無法直接用來運算
於是我設置了C_W & C_B 兩個int變數在buffer存放黑白的時候來計算兩者的數量
這時候我們就獲得了總像素跟黑白的數量
接下來就是自由發揮啦~
all就成為門檻的基本數
all= (C_W + C_B)/100;
int lv1 = all*6; int lv6 = all*36; int lv11 = all*66;
int lv2 = all*12; int lv7 = all*42; int lv12 = all*72;
int lv3 = all*18; int lv8 = all*48; int lv13 = all*78;
int lv4 = all*24; int lv9 = all*54; int lv14 = all*84;
int lv5 = all*30; int lv10 = all*60; int lv15 = all*90;
接著直接做一個簡單的圖像長棒
這裡我把門檻設計為15個
接著將每個門檻跟每格圖像長棒榜定
if(C_W >= lv1)
{Image2->Visible=true;}
這樣程式就會依據進入攝影機的相異物量(白色)的多寡而增加量表的長度
原理很簡單,只是Image圖像的顯示開關而已
每當相異物達到每個門檻的數量都會多亮起一格
這樣長棒就會隨著攝影機中的相異物增減而有長度的變化囉
如圖 : 將手直放入攝影鏡頭中,佔有率達到18%,所以增量表跳起了2格
將兩隻手放入,佔有率直直提升,增量表也隨之增加
盡可能擋住攝影機,佔有率突破了90%,增量表也達到MAX
原本有考慮設計一個陣列來直接對應門檻數值做出很有質感的起伏條
甚至是更花俏的其他有趣點的功能(例如隨機放出一個在攝影機上,相異物碰撞後會移動或是消失到其他地方之類的)
可惜家裡BCB已經"罷工"↓
只好利用上課時間+-弄弄了
沒有留言:
張貼留言