Unit 2. Histogram-based影像增強
1.
使用直方圖拓寬(histogram Stretching)影像對比增強。
如下圖將kaoshiung512x512.raw的灰階分布拉寬至[0,255]。 2.使用Histogram Equalization(HE)增強影像對比 演算法: Step 1. 計算影像灰階統計直方圖(histogram)Pr Step 2. 從灰階統計直方圖計算累增直方圖(cumulative histogram) Sk Step 3. 從累增直方圖計算等化分布直方圖(equalized
histogram)f(x),使灰階頻率平均分布在[X0, XL-1]: f(x)=X0+(XL-1-X0)Sk X0是期望的最小灰階值(例如0),XL-1是期望的最大灰階值(例如255) Step 4. 以此等化分布直方圖f(x)當作映射函數,重新指定影像每一pixel的灰階值。 程式範例: void HistogramEqualization(uc2D &ima0,
uc2D &ima1) { long
ImaSize=ima0.nr*ima0.nc; int histo[256]; //histogram float
accpbhisto[256]; // cumulative istogram int
table[256];// Look-up table for mapping fuction of
histogram equalization // Initialize for(int i=0;i<256;i++) { histo[i]=0; table[i]=0; accpbhisto[i]=0.0; } // Compute histogram for(int
i=0;i<ima0.nr;i++)for(int j=0;j<ima0.nc;j++)histo[ima0.m[i][j]]++; // Compute cumulative histogram
accpbhisto[0]=float(histo[0])/float(ImaSize); for(int
i=1;i<256;i++) {
accpbhisto[i]=accpbhisto[i-1]+float(histo[i])/float(ImaSize); } // compute mapping function for(int i=0;i<256;i++)table[i]=char(accpbhisto[i]*256.); // Enhancement for(int
i=0;i<ima0.nr;i++)for(int
j=0;j<ima0.nc;j++) ima1.m[i][j]=table[ima0.m[i][j]]; } 請寫一個主程式分別對finger300x300、ant(gray)600x400和kaoshiung512x512進行HE的影像增強。 3. Local HE影像增強方法 每一個pixel與鄰近pixel的灰階值比較,決定其排序。再依此一排序的正比關係指定一個新的灰階值給這個pixel。Local HE影像增強方法是根據區域性(而非整張影像)的資訊來增強對比。 請寫一個主程式,嘗試使用不同大小的區域視窗(contextual region),分別對finger300x300、ant(gray)600x400和kaoshiung512x512進行Local HE的影像增強,。 4. 參數可調整的HE影像增強方法─AHE(Adaptive
Histogram Equalization) k1,k2是兩個介於[0,1] 的可調參數。至於計算影像平均值(mean)和標準差(standard
deviation)的範例程式如下: float mean_stddev (Image& im, float &mean, float &std_dev) { int i, j; long N, sum=0; N = (long)(im.nr) * (long)(im.nc); for (i=0; i<im.nr;
i++) for (j=0; j<im.nc;
j++) sum += im.m[i][j]; mean=(float)sum/(float)(N);
//Calculating the mean float sumdev=0.0; for (i=0; i<im.nr;
i++) for (j=0; j<im.nc;
j++) {
d = im.m[i][j] - mean;
sumdev = sumdev+
d*d; } std_dev = sqrt(sumdev/N);//Calculating the standard deviance } Adaptive Histogram Equalization也是基於區塊影像資訊的對比增強方法。請寫一個程式測試不同的k1,k2參數組合對kaoshiung512x512影像進行AHE影像增強的效果: (1)
採用Try-and-Error方法找到較好的一組(k1,k2); (2)
(option,可不做)採用GA、PSO等最佳化方法找到一組最佳的(k1,k2),可考慮用影像中Edge的強度和作為評估函數。 |