[問題] 關於RGB轉灰階的程式碼問題

看板C_and_CPP (C/C++)作者 (devilrucifer)時間16年前 (2009/04/08 22:55), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串1/5 (看更多)
各位板大好: 小弟因為最近剛開始學影像處理,所以有很多東西不懂, 在此想請教一下各位先進關於灰階轉換的問題,常見的兩種的算式 Gray=(B*28+G*151+R*77)/256 OR gray=R*0.299+G*0.587+B*0.114 請問要用哪一種會比較精準,還是是沒差的呢? 還有想請教為什麼RGB要乘於那些係數呢? 最後除以256是為什麼呢?灰階不是只有0-255? 還有小弟有看過這種程式碼 //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { int x,y,graylevel; for(y=1;y<=Image1->Height;y++) { for(x=1;x<=Image1->Picture->Width;x++) { TCColor c=Image1->Canvas->Pixels[x][y]; graylevel=((int)c.Red+(int)c.Green+(int)c.Blue)/3; Image1->Canvas->Pixels[x][y]=TCColor(graylevel,graylevel,graylevel).Color; } } } //--------------------------------------------------------------------------- 請問為什麼程式碼可以這樣寫,他的意思是什麼?RGB加起來除以3也是灰階嗎? 煩請有空的版友撥空回覆一下小弟,小弟感激不盡。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.186.222

04/08 23:05, , 1F
問題是 真的精準你分辨得出來嗎? 除以3可能是考慮速度
04/08 23:05, 1F

04/08 23:05, , 2F
除以256的確是0~255啊
04/08 23:05, 2F

04/08 23:36, , 3F
當然除以3也是灰階,那些比例是根據肉眼對RGB的敏感程度
04/08 23:36, 3F

04/08 23:55, , 4F
感謝大大們推文 ^^
04/08 23:55, 4F
文章代碼(AID): #19tBhiaA (C_and_CPP)
文章代碼(AID): #19tBhiaA (C_and_CPP)