灰度變換

空間域技術直接對像素進行操作
g(x,y)=T[f(x,y)]
1**、亮度變換函數**
變換T的最簡單形式是鄰域大小爲1×1時。此時,(x,y)處的g值僅由f在該點處的亮度決定,T也變爲一個亮度或灰度級變換函數。
亮度變換函數僅取決於亮度的值,而與(x,y)無關。
s=T(r)
其中,r表示圖像f中相應點(x,y)的亮度,s表示圖像g中相應點(x,y)的亮度。
1.1、函數imadjust
函數imadjust 是對灰度圖像進行亮度變換的基本IPT工具。
語法格式 g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma)
說明:g的灰度範圍爲low_in到high_in,其中f中低於low_in的都看作low_out,高於high的都看作high_out;gamma小於1意味着f的值在映射到g時變得比原值大,大於1則相反。
的值。
灰度級範圍爲[0,L-1]的一幅圖像的反轉圖像,該反轉圖像由下式給出:
S=L-1-r
這種獲得明暗反轉圖像的過程可用於增強嵌入在大片黑色區域中的白色或灰色區域。
一幅圖像的反轉也可以使用函數imcomplement。
例子:一幅數字乳房X射線圖像f

明暗反轉圖像g=imadjust(f,[0,1],[1,0])
在這裏插入圖片描述

g2 = imadjust(f,[0.5,0.75],[0,1])亮的地方更亮
在這裏插入圖片描述
2、對數變換

其中c是一個常數,並假設r>=0
該變換將輸入中範圍較窄的低灰度值映射爲輸出中較寬範圍的高灰度值,對高的輸入灰度值也是如此。使用這種變換來擴展像素中的暗像素的值,同時壓縮更高灰度級的值。即將輸入中範圍較寬的高灰度值映射爲輸出中範圍較窄的灰度值。
對數變換可以達到壓縮圖像動態範圍的目的。
在這裏插入圖片描述
使用對數變換減小動態範圍
在這裏插入圖片描述
3、對比度拉伸函數
在這裏插入圖片描述
對比度拉伸變換函數,將輸入值低於m的灰度級壓縮爲輸出圖像中較暗灰度級的較窄範圍內,將輸入值高於m的灰度級壓縮爲輸出圖像中較亮灰度級的較窄範圍內。輸出的是一幅具有高對比度的圖像。
閾值函數,輸出是一幅二值圖像。
4、冪律(伽馬)變換
在這裏插入圖片描述
matlab函數代碼:

function g = intrans(f,varargin) %g=intrans(f,‘neg’)輸出爲輸入圖片的負片 %g=intrans(f,‘log’,c,class)對圖像進行log變換,c的默認值爲1。class爲指定輸出的圖像類型,默認爲與輸入圖像一致 %g=intrans(f,‘gamma’,gam) %如果gam是小於1,該映射是偏重於亮的輸出值。如果gam大於1,該映射是偏向暗的輸出值 %g=intrans(f,‘stretch’,m,e)公式爲(g=1./(1+(m./(f+eps)).^E)) %可以不輸入m與e,默認m爲圖像的平均值,e爲4 %對比度拉伸變換函數,該函數可以將輸入值低於m的灰度級壓縮爲輸出圖像中較暗灰度級的較窄範圍內; error(nargchk(2,4,nargin))%判斷參數的正確性 classin = class(f);%判斷圖像的類型 if strcmp(class(f),‘double’)&&max(f(😃)>1&& strcmp(varargin{1},‘log’) f=mat2gray(f); else f= im2double(f); end method = varargin{1}; switch method case ‘neg’ g=imcomplement(f); case ‘log’ if length(varargin)==1 c=1; elseif length(varargin)==2 c=varargin{2}; elseif length(varargin)==3 c=varargin{2}; classin = varargin{3} else error(‘Incorrect number of inputs for the log option.’) end g=c*(log(1+double(f))); case ‘gamma’ if length(varargin)<2 error(‘Not enough inputs for the gamma option.’) end gam = varargin{2}; g = imadjust(f,[],[],gam) case ‘stretch’ if length(varargin)<2 m=mean2(f); E=4.0; elseif length(varargin)==2 m=varargin{2}; E=varargin{3}; else error(‘Incorrect number of inputs for the log option.’) end g= 1./(1+(m./(f+eps)).^E); otherwise error(‘Unknow enhancement method’) end g=changeclass(classin,g); end 本文參考數字圖像處理