2008年8月28日星期四

Webcam 偵測畫面改變

之前做過畫面偵測:http://blog.ben.idv.tw/2007/08/webcam.html

這次來試試看如何可以抓到變化區域最大的地方。

執行畫面如下,畫面中第一直行是原 camera,第二直行是取得與上次 BitmapData 的變化,第三直行是根據原始變化以不同大小的格子來區分,第四直行是依照格子變化將有連在一起的格子用相同顏色作群組。







若是整個環境沒有太多雜訊,若是人物離 camera 遠一點(使人物對畫面的影響減少),然後用拳頭取代手指(因為人坐遠了,所以要大一點的指標),然後為了避免手臂會被誤判,所以要將手臂抬起來呈現直指 camera 的姿勢,這樣的話就可以讓變化區比較集中一些了。

不過,上述的範例,放在瀏覽器的 flash player 播放時,會停住,想必可能是因為我中間作了太多不必要的 BitmapData 的關係吧:



原始檔:http://ben.rb.chang.googlepages.com/20080828_Webcam_Detect.fla

=====================================================

[2008-08-28-16-34]

若是將最後取得的最大 Rect,用其中心點來控制小球的話,畫面如下:

4 意見:

匿名 提到...

邦大.可以提供一下你後來修改的控制小球的程式碼嗎..我想學習一下這方便的寫法..
不知道可不可以..感謝了

匿名 提到...

Sorry,是這方面的寫法,打錯字了

Kai 提到...

邦大 可否提供後來修改控制小球的程式碼嗎???感謝感謝

Ben Chang 提到...

抱歉,我也沒有留 最後版本的程式碼,我想,當時應該最後只做了小小的修正,關鍵的做法應該就是我提到的:"若是將最後取得的最大 Rect,用其中心點來控制小球的話"!

我相信這應該是不太困難的異動,不然我也不會沒有更新我的文章,抱歉囉~

關於我






* ben {dot} chang {at} ben {dot} idv {dot} tw
* FriendFeed

贊助我1元美金:

Plurk

標籤雲