作者aaron8920114 (大個)
看板NCKU_CSIE93
標題[請益] 用C++程式 做影像擷取的問題... (應該算吧)
時間Wed Oct 15 19:16:04 2008
小弟需要做一個用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
1F:推 boypower:哦哦大個來貼文了! 10/15 21:50
2F:→ boypower:你的問題不太明確ㄟ 是要問怎麼寫還是你的code有錯? 10/15 21:51
3F:→ aaron8920114:我要問 我接下來 該怎麼樣寫 才能把每個像素的值存 10/15 22:17
4F:→ aaron8920114:取下來 並做出判斷.. 10/15 22:17
5F:→ aaron8920114:假設說 我要給予每個像素的門檻值為 0的+(-)30 10/15 22:18
6F:→ aaron8920114:超出範圍為1 並記錄下來 然後可以算出到底有多少點 10/15 22:19
7F:→ aaron8920114:(因為我後面還要判斷 他對於整張圖的比例 決定是否擷 10/15 22:20
8F:→ aaron8920114:取下來!! 10/15 22:20
9F:推 boypower:既然已經把值存在DiffData 就用for loop再掃一次 10/15 22:23
10F:→ boypower:然後用個變數當作counter來數有幾個點超過門檻 10/15 22:23
11F:→ aaron8920114:我如果使用 abx()來把 Diffdata轉成正數 10/15 22:25
12F:→ aaron8920114:會不會比較方便 判定門檻呢ㄋ!? 10/15 22:25
13F:→ boypower:不用刻意用abs 就if(xxx < -a || xxx > a) 醬吧 10/15 22:31
14F:推 foxkid:這位是? 10/16 00:12
15F:→ aaron8920114:ㄟ都 我是玩遊戲認識 BOYPOWER的 我要跟他請益 10/16 00:53
16F:→ aaron8920114:他告訴我來貼在這邊!! 10/16 00:53
17F:推 foxkid:歡迎:) 10/16 07:50
18F:推 boypower:板上高手如雲~! 10/16 14:01
19F:推 ZayRowz:大家都是高手 靠你們了 10/16 22:18