[問題] 關於RGB轉灰階的程式碼問題
看板C_and_CPP (C/C++)作者devilrucifer (devilrucifer)時間16年前 (2009/04/08 22:55)推噓0(0推 0噓 4→)留言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
04/08 23:05, 1F
→
04/08 23:05, , 2F
04/08 23:05, 2F
→
04/08 23:36, , 3F
04/08 23:36, 3F
→
04/08 23:55, , 4F
04/08 23:55, 4F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章