Flash 板


LINE

http://langrisser1981.blogspot.com/2008/02/blog-post_9062.html 這我之前做的 你應該是想做像這樣的東西沒錯吧 我當初是用flash寫的 老實說如果用director會比較快,因為有現成的外掛可以用,而且速度比較快 flash也行,國外有很多範例可以看 當時我是自己寫了一個小小的公式來計算,也有寫成元件方便使用 不過原理很重要 我來說說我是怎麼思考的 繼續往下之前確認兩件事 1.你會用photoshop,或是影像處理,知道什麼叫做混色模式(blending mode) 2.你知道什麼叫做位元運算子(bitwise operator) 不知道的話,你應該永遠也做不出來偵測影像的程式...囧rz 首先,你用getPixel() 只能知道顏色 除非你帶了一個黑手套,然後在一個白畫面前面晃,這樣的反差抓顏色才有意義 不然你的程式會誤差到一個很可怕的程度 所以我的想法很簡單,我要知道“畫面的那個地方是有動作的” 也就是前面一個畫面,跟目前這個畫面,它的差別在哪裡 如果有用過photoshop,思考一下,假設現在你有兩張圖 畫面上的背景是黑色,上面都有一個紅色的圓 但是一張圖的圓在中間偏左,另一張在中間偏右 你要怎麼找出她們重疊的那一塊,跟不同的地方 很簡單,先把其中一張顏色反轉,再跟另一張圖作聯集運算就可以 我想有用過的人應該都會這招,這招就是我們要做的 換成數學表示,原理就是 首先我先把該點像素的顏色拆開,rgb值都分別拆開 假設該點像素是紅色,所以他的rgb值是0xff0000,我們用變數color代表 r=(0xff0000&color)>>16; g=(0x00ff00&color)>>8; b=(0x0000ff&color); 這樣你就得到了 r,g,b三個channel的值 這時候你可以把結果先轉成灰階化,但是因為這邊我知道我只要抓紅色 所以我只取r channel的結果 轉灰階化也不難啦,我都直接這樣轉 (0.3*r)+(0.6*r)+(0.1*b) 總之最後你會得到一個值,它的範圍是0~255...這就是重點 把這個值轉成二進位表示 以這個例子為例,畫面不是紅就是灰 所以這個值如果不是0xff(red channel)不然就是0x00(黑) 我把該值轉二進位表示,紅色就等於11111111,黑色就等於00000000 你把兩個畫面的“同一個取樣點”都做同樣的計算 好了以後 先把其中一個做not運算 假設在上一個畫面的時候,這一個取樣點是紅色 所以取到的值等於11111111,做not(!)運算,結果等於00000000(在此以a代表) ! 11111111 __________ a:00000000 接下來假設這個畫面紅圈移動開了,所以同樣的取樣點取到黑色 值等於00000000(在此以b代表) 把a跟b做or(|)運算 a:00000000 b:00000000 |_________ c:00000000 答案會是全黑 同樣的情況,我假設這個取樣點取到一樣是紅色 值等於11111111(在此以d代表) a:00000000 d:11111111 |_________ e:11111111 答案會是全白 所以我就是用這個法來判斷 白色就代表這個點的像素沒有改變過,越黑就代表改變越大 沒錯,用這個方式還可以知道改變的幅度 既然知道哪個像素被更動了,就知道哪個點發生作用 這樣就可以作後續偵測了 當然怎樣設取樣點,怎樣最佳化,這要自己去調整 不過概念是這樣沒錯 說到這邊,完... ※ 引述《gargouille (lol)》之銘言: : ※ 引述《yakeilee (嘟嘟啊~台南處處有好人)》之銘言: : : 如果要用Flash中的webcam偵測畫面中的顏色區塊 : : 是否是要從Bitmap中擷取?? : : 真的不知道要從哪個指令下手編寫 : : 之前有大大推薦我要先去看help : : 我看了...只找到偵測activity 事件 : : 拜託大大們指導迷津一下Orz : : 或者是有沒有相關教學的書籍或網站可以推薦的?? : : 我看help看到眼睛快脫窗了~還是寫不出來>"< : 正好我最近也想做這個相關的題目 : 我還沒有什麼成果出來 : 不過我想用的是 : BitmapData.getColorBoundsRect() : 或 : BitmapData.getPixel() : 這兩個去做吧 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.51.117
1F:推 gargouille:感謝~ 這真實用 03/07 02:38
2F:推 yakeilee:挖~~其實之前我找的資料中就有說過用direct做比較好 03/07 14:20
3F:→ yakeilee:但是後來接觸到一位外國學者建議我用FLASH做.... 03/07 14:21
4F:→ yakeilee:因此我才會在這邊提出疑問...謝謝你提供這些資訊^^ 好人 03/07 14:21







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP