看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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