1. 程式人生 > >【matlab】亮度變換

【matlab】亮度變換

灰度影象亮度變換:g = imadjust(f,[low_in high_in],[low_out high_out],gamma)。其中low_in, high_in, low_out, high_out均在區間[0 1]之間,若輸入的影象f是uint8類影象,則函式將除以255來確定應用中的實際值,若是uint16類影象,則將除以65535。gamma小於1,則輸出為更亮;等於1,亮度不變;大於1,輸出亮度更暗。

函式輸入可變數目的輸入變數:varargin

函式輸出可變數目的輸出變數:varargout

changeclass: g = changeclass(newclass,f)此函式將影象f轉換成由引數newclass指定的類別,並輸出影象g.newclass的有效值是uint8,uint16,double。


負片變換:g = imcomplement(f)
對數變換:g = c*log(1+double(f))
gamma變換:imadjust(f,[ ],[ ],gamma)
對比度拉伸變換:g = 1./(1+(m./(double(f)+eps)).^E)

把影象標度在全尺度:g = gscale(f,method,low,high)。其中,f是將被標度的影象,method的有效值為‘full8’(預設)和‘full16’,full8將輸出標度為全範圍[0 255],full16將輸出標度為全範圍[0 65535]。若使用這兩個,則可以省略low和high。method的第三個有效引數為'minmax',此時要給出low和high在區間[0 1]。

影象直方圖:h = imhist(f,b),其中,f為輸入影象,h為其直方圖,b用於形成直方圖的“收集箱”個數。imhist()要求輸入的f必須是二維的,當輸入的影象是彩色影象時就不是二維的,需要轉化為灰度影象 f = rgb2gray(f)。

numel(f)給出陣列f中的元素個數(即影象中的畫素數)。

axis([horzmin horzmax vertmin vertmax]),該函式設定了水平軸和垂直軸的最大和最小值。

set(gca,'xtick',0:50:255);
set(gca,'ytick',0:200:1500);設定水平和垂直軸的刻度範圍。

繪製圖像直方圖的各種方法:(a)imhist (b)bar (c)stem (d)plot


直方圖均衡化(增強影象):g = histeq(f,nlev)。nlev是為輸出影象指定的灰度級數。nlev預設值為64.一般來說,我們將nlev設定為256。直方圖均衡化可以通過擴充套件輸入影象的灰度級到較寬亮度尺度的範圍來實現影象增強。

直方圖匹配(增強影象):g = histeq(f,hspec).其中,f為輸入影象,hspec為指定的直方圖(一個由指定值構成的行向量),g為輸出影象,其直方圖近似於指定的直方圖hspec。