看板 C_and_CPP 關於我們 聯絡資訊
各位板大好: 小弟因為最近剛開始學影像處理,所以有很多東西不懂, 在此想請教一下各位先進關於灰階轉換的問題,常見的兩種的算式 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
jaw109:問題是 真的精準你分辨得出來嗎? 除以3可能是考慮速度 04/08 23:05
jaw109:除以256的確是0~255啊 04/08 23:05
snowlike:當然除以3也是灰階,那些比例是根據肉眼對RGB的敏感程度 04/08 23:36
devilrucifer:感謝大大們推文 ^^ 04/08 23:55