看板 NCKU_CSIE93 關於我們 聯絡資訊
小弟需要做一個用C++控制 WEBCAM 來擷取影像 之後判斷影像是否有變更並儲存的程式 目前做到將 RGB 格式的影像 轉為 YCrCb 並取出Y值做兩張圖的相減 //RGB轉Y void CCamera_OpenDlg::RGB2YUV(BYTE *lpRGB, BYTE *lpY, int width, int height) { int i, j; for(i=0; i<width; i++) { for(j=0; j<height; j++) { lpY[i*height+j] = 16+ 0.257*lpRGB[0]+0.504*lpRGB[1]+0.098*lpRGB[2]; lpRGB += 3; } } } //前後兩張圖的相減 void CCamera_OpenDlg::subtraction(BYTE *lpPreY, BYTE *lpNowY, int width, int height) { int i, j, ; for(i=0; i<width; i++) { for(j=0; j<height; j++) { DiffData[i*height+j] = (int)lpNowY[i*height+j] - lpPreY[i*height+j]; } } } 現在的問題是 需要在每個像素內設定一個門檻值 來判定 每一個像素是否有變化! 然後要統計有多少個像素有變化 再判斷這些有變化的像素 佔整張圖比例 有沒有超過我們要再設定的第二到門檻值 小弟 第一次再PTT上發文 所以不太會編排 請見諒! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.35.169
boypower:哦哦大個來貼文了! 10/15 21:50
boypower:你的問題不太明確ㄟ 是要問怎麼寫還是你的code有錯? 10/15 21:51
aaron8920114:我要問 我接下來 該怎麼樣寫 才能把每個像素的值存 10/15 22:17
aaron8920114:取下來 並做出判斷.. 10/15 22:17
aaron8920114:假設說 我要給予每個像素的門檻值為 0的+(-)30 10/15 22:18
aaron8920114:超出範圍為1 並記錄下來 然後可以算出到底有多少點 10/15 22:19
aaron8920114:(因為我後面還要判斷 他對於整張圖的比例 決定是否擷 10/15 22:20
aaron8920114:取下來!! 10/15 22:20
boypower:既然已經把值存在DiffData 就用for loop再掃一次 10/15 22:23
boypower:然後用個變數當作counter來數有幾個點超過門檻 10/15 22:23
aaron8920114:我如果使用 abx()來把 Diffdata轉成正數 10/15 22:25
aaron8920114:會不會比較方便 判定門檻呢ㄋ!? 10/15 22:25
boypower:不用刻意用abs 就if(xxx < -a || xxx > a) 醬吧 10/15 22:31
foxkid:這位是? 10/16 00:12
aaron8920114:ㄟ都 我是玩遊戲認識 BOYPOWER的 我要跟他請益 10/16 00:53
aaron8920114:他告訴我來貼在這邊!! 10/16 00:53
foxkid:歡迎:) 10/16 07:50
boypower:板上高手如雲~! 10/16 14:01
ZayRowz:大家都是高手 靠你們了 10/16 22:18