線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4107
推到 Plurk!
推到 Facebook!

[轉貼] 誤差擴散的原理

 
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-15 12:50:23 IP:61.218.xxx.xxx 未訂閱

誤差擴散的原理

誤差擴散法在數據處理中經常碰到, 尤其是用于圖象處理中, 降低色彩的深度. 下面三張圖, 圖1 是 256 級灰度過度, 圖 2 是簡單的將圖一按就近原則, 轉換成了 16 級灰度. (直接把 8bit 灰度的后 4bit 砍掉) 圖3 是將圖 1 用誤差擴散的方法轉換成 16 級灰度. 圖一. 圖二. 圖三. 很明顯, 同是 16 色, 但是圖三的效果明顯好于圖二. 其原因是使用的誤差擴散算法. 顧名思義, 誤差擴散, 就是將色彩深度降低時, 將像素顏色的變化誤差, 擴散開去. 這使得肉眼在觀察圖片的時候, 相鄰的像素點集合整體 的誤差變小. 下面舉一例來說明要容易理解的多: 在原256 級灰度圖象上有一個點, 灰度值是 120 (0~255), 如果我們要將這張圖轉換成 16 級灰度, 最簡單的方法是將每個像素點除以 16. 那麼轉換后的值就是 120/16=7.5 保留整數位后就是 7 . 這樣轉換后的值就有了 0.5 的誤差. 最簡單的誤差擴散方法是將這 0.5 的誤差放到這個點右邊/下邊的點上, 我們可以按 3:2:3 的比例把它分配到右邊, 右下, 下邊的點上. 即, 我們把右邊和下邊的點加上 (0.5*16)*3/8=3, 把右下的點加上 (0.5*16)*2/8=2. 這樣處理完整個圖形, 要比直接截尾的效果要好的多. 實際上, 3:2:3 的誤差分配方案 並不算好. 你還可以試試 7:3:5:1 的分法:
  X 7
3 5 1
或者 42 分:
    X 8 4
2 4 8 4 2
1 2 4 2 1
當然也不一定複雜的 Filter 就一定效果更好, 還是要視圖象而定. 我覺得這個方法很容易理解, 就不多寫了, 可以將其很容易的擴展到彩色圖象的處理. (只需要將顏色分成 R G B 三色素) 另外, 不光是圖象處理, 這個算法在別的一些數據處理中也常用到. 時間就是金錢---[ 發問前請先找找舊文章]
系統時間:2024-04-20 16:26:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!