作者muah (想唱歌)
看板C_and_CPP
標題[問題] 請問opencv讀pixel
時間Sun Jun 14 00:38:37 2009
請問一下有用過opencv的高手們
我用cvGet2D這個function想要抓取圖中某點的pixel值
類似下面這樣的function:
for(int i=0;i<Height;i++)
{
for(int j=0;j<Width;j++)
{
Scalar1=cvGet2D(Image1,i,j);
Blue[i][j]=Scalar1.val[0];
Green[i][j]=Scalar1.val[1];
Red[i][j]=Scalar1.val[2];
}
}
不過我查很久好像都是抓RGB的資料,
那假如我的原始img是8bit單通道的灰階圖(cvLoadImage強制讀取灰階)
也能夠用這個function嗎?可以的話要怎麼取值呢?
還是灰階就沒辦法了?
我又試了另一種寫法:
int pixel;
pixel = (int)(UCHAR*)(pImg->imageData+pImg->widthStep*120)[160];
printf("%d", pixel);
可能是我寫錯了 得出來的值是-18 請問一下要怎麼修改呢??
我試過%c 是空白的~~~請大大告訴我正確的寫法吧 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.44.61
※ 編輯: muah 來自: 140.124.44.61 (06/14 01:28)
1F:推 jerohands:img->imageData[img->nChannels*(y*img->width+x)+chn] 06/14 09:53
2F:→ jerohands:chn的定義:彩色2-R,1-G,0-B 灰階0 06/14 09:55
3F:→ jerohands:推薦一個網誌,Google打"昨日",那位仁兄整理的非常好 06/14 09:57
4F:→ muah:我有看他的網誌 不過我用你的寫法寫好像也一樣a =.= 06/14 21:17
5F:→ muah:是宣告成int來抓嗎? 還是要用uchar呢? 06/14 21:20
6F:→ muah:解決了 把Scalar1抓到的值轉成int 就可以讀出來了 囧 06/14 22:40