作者devilrucifer (devilrucifer)
看板C_and_CPP
標題Re: [問題] 關於RGB轉灰階的程式碼問題
時間Thu Apr 9 15:06:13 2009
※ 引述《VictorTom (鬼翼&娃娃魚)》之銘言:
: ※ 引述《devilrucifer (devilrucifer)》之銘言:
: : 各位板大好:
: : 小弟因為最近剛開始學影像處理,所以有很多東西不懂,
: : 在此想請教一下各位先進關於灰階轉換的問題,常見的兩種的算式
: : Gray=(B*28+G*151+R*77)/256
: : OR
: : gray=R*0.299+G*0.587+B*0.114
: 理論上, 後面這個比較精確, 常見的做法還會加一個四捨五入的0.5
: 但是, 在CPU上, 甚至一些embbed system, 前者會算的比較快....
: 有一個折衷的方案是:
: gray = (R*299 + G*587 + B*114 + 500) / 1000;
不好意思我在請問一下一個問題,
請問這一邊加0.5四捨五入的用意是什麼呢?
是怕數值超過255嗎?
小弟是試過有加跟沒加都可以正常執行,
也看過有人沒加0.5而是在後面追加
if(gray>255)gray=255;
if(gray<0)gray=0;
請問這幾個在執行上有甚麼差異嗎?
在此先謝謝各位版友。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.74.245.166
→ MasterChang:等效 (gray>255)?255:((gray<0)?0:gray) 04/09 20:01
→ ewn:加0.5只是為了四捨五入 04/12 00:01