顯示廣告
隱藏 ✕
看板 Knuckles
作者 Knuckles(阿德)
標題 Re: DIP作業二
時間 2007年11月10日 Sat. PM 10:15:32


關於 Local Histogram Equalization
我的作法是
先設一個Window Size(例如設為9x9)
然後對圖上的每個點(x,y)
求四週9x9範圍內的Histgram存進hist陣列
然後只對(x,y)那個點做Histogram Equalization
例如那個點的灰階值為100

       255    100
則 s = ── x  Σ hist[j]
       9x9    j=0

將求得的結果s存進新的圖的(x,y)位置

參考程式碼:
	
CImage img1_LHE; 
	
img1_LHE.Create(width,height,8);
	
int w = 9; //window size

	
for(y=0; y<height; y++)
	
	
for(x=0; x<width; x++){
	
	
	
//計算Local Histogram
	
	
	
for(i=0;i<256;i++) 
	
	
	
	
hist[i] = 0; 
	
	
	
for(y2=y-(w-1)/2; y2<=y+(w-1)/2; y2++)
	
	
	
	
for(x2=x-(w-1)/2; x2<=x+(w-1)/2; x2++){
	
	
	
	
	
if(y2<0 || y2>=height || x2<0 || x2>=width) 
	
	
	
	
	
	
continue;
	
	
	
	
	
hist[img1.GetGrayPixel(x2,y2)]++;
	
	
	
	
}
	
	
	
//Local Histogram Equalization
	
	
	
k = img1.GetGrayPixel(x,y);
	
	
	
s = 0;
	
	
	
for(j=0; j<k; j++)
	
	
	
	
s += hist[j];
	
	
	
s = s*255/(w*w);
	
	
	
img1_LHE.SetGrayPixel(x,y,s);
	
	
}
	
img1_LHE.SaveBmpFile("LHE.bmp");
	
printf("已建立Local Histogram Equalization,檔名為LHE.bmp\n");
結果:

Window size = 9
[圖]


Window size = 100
[圖]



--
※ 來源: 台大電信 DISP 實驗室 (http://disp.twbbs.org)
※ 作者: Knuckles  來自: 140.112.175.130  時間: 2007-11-10 22:15:32
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-11-10 22:15:56
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2007-11-10 22:29:16
推 bookie: 好短 >>140.112.19.209 11-10 23:45
推 pose: s = s*255/(w*w);  <== w*w需要做修改否則邊緣會較暗 >>140.112.19.232 11-11 01:01
推 Knuckles: 有道理耶 那我自己的再改一改 謝啦 >>140.112.175.130 11-11 01:31
推 keanos: 纯推不下 >>61.216.7.245 11-11 23:22
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-10-13 04:16:42
※ 編輯: Knuckles  來自: 140.112.175.128  時間: 2008-10-13 04:17:14
※ 編輯: Knuckles  來自: 140.112.175.130  時間: 2009-05-31 15:17:09
※ 編輯: Knuckles  時間: 2010-10-23 04:40:33  來自: 111-248-0-184.dynamic.hinet.net
※ 同主題文章:
  11-08 15:42 Knuckles □ DIP作業二
● 11-10 22:15 Knuckles Re DIP作業二
※ 看板: KnucklesNote 文章推薦值: 4 目前人氣: 0 累積人氣: 4169 
※ 文章分類: 程式設計 C/C++
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續