1. 程式人生 > >Matlab之自適應直方圖均衡adapthisteq

Matlab之自適應直方圖均衡adapthisteq

轉自這裡

 

adapthisteq函式執行所謂的對比度受限的自適應直方圖均衡

這種方法用直方圖匹配方法來逐個處理影象中的較小區域(稱為小塊)。然後使用雙線性內插方法將相鄰的小片組合起來,從而消除人口引入的邊界。

特別在均勻的灰度區域,可以限制對比度來避免放大噪聲。

 

g = adapthisteq(f, param1, val1, param2, val2, ...)

該函式所用引數:

'NumTiles'  一個有正整陣列成的兩元素向量[r, c],由向量的行和列指定小片數。r和c都必須至少是2,小片總數等於r*c。預設值是[ 8  8]

'ClipLimit' 範圍是[0 1]內的標量,用於指定對比度增強的限制。較高的值產生較強的對比度。預設值是0.01

'NBins' 針對建立對比度增強變黃所用的直方圖容器數目指定的正整數標量。較高的值會在較慢的處理速度下導致較大的動態範圍。預設值是256

'Range' 規定輸出影象資料範圍的字串

        'original'——範圍被限制到原始影象的範圍,[min(f(:))  max(f(:))]

        'full'——使用輸出影象類的整個範圍。例如,對於uint8類的資料,範圍是[0 255]。這是預設值。

'Distribution' 為影象小片指定期望直方圖形狀的字串

        'uniform'——平坦的直方圖(預設)

        'rayleigh'——鐘形直方圖

        'exponential'——曲線直方圖

'Alpha' 適用於瑞利和指數分佈的非負標量。預設值為0.4

 

f = imread('Fig0210(a).tif');
figure(1);
imshow(f);
%adapthisteq的使用
g1 = adapthisteq(f);
figure;
imshow(g1);
g2 = adapthisteq(f, 'NumTiles', [25 25]);
figure;
imshow(g2);
 
g3 = adapthisteq(f, 'NumTiles', [25 25], 'ClipLimit', 0.05);
figure;
imshow(g3);