1. 程式人生 > >Matlab影象代數運算

Matlab影象代數運算

1.點運算

所謂的點運算是指,對一幅輸入影象而言,若輸出影象的每個畫素點的灰度值由輸入畫素點決定的影象變換。點運算分為線性點運算和非線性點運算。

1).線性點運算

2).非線性點運算

非線性點運算的引入主要是針對成像裝置本身的非線性失衡,我們需要對其校正,或主觀強化部分灰度區域的資訊。非線性變換往往都是具體情況具體分析,並無固定的表示式。

2.影象加法

可以呼叫imadd函式進行兩幅影象的疊加,其語法格式為:I=imadd(A,B)

其中若B為一常量,則表示對影象A亮度的整體調整;影象的加法運算主要用來得到影象的疊加效果和消除疊加性噪聲。

通過多影象的平均來降低影象的噪聲,主要用到線性加權函式imlincomb。其呼叫格式為:I=imlincomb(K1,I1,K2,I2,K3,I3,...,Kn,In),其中K1,K2...Kn表示加權係數,I1,I2,...In表示輸入的多幅影象。

3.影象減法

可以呼叫imsubtract函式實現兩幅影象的減法,其語法格式為:

I=imsubtract(A,B),其中若B為一常量,則表示對影象A的平移操作;影象的加減法運算主要用來顯示影象之間的差異,檢測同一場景兩幅影象之間的變化。主要的應用有:去除不需要的疊加性圖案、運動檢測、梯度影象。

4.影象乘法

通過呼叫immultiply函式來實現對影象的乘法,其語法格式為:I=immultiply(A,B),若B為一常量,則表示對影象A的亮度調節。需要注意的是,兩個影象灰度的乘積通常會超出uint8型別的最大值255,所以在應用前要先轉換成uint16,以防溢位。影象乘法主要用於對影象進行掩模操作,即遮掉影象中的某些部分。

5.影象除法

影象除法的實現是由imdivide函式實現的。其語法格式為:I=imdivide(A,B),同樣當B為常量時,也是對影象A的亮度的調整。為了防止除數為零,通常要加上“eps”。影象除法可以用來校正由於照明或感測器的非均勻性而造成的影象灰度陰影,還可用於產生比率影象。

特別要注意的是,對影象的代數運算中,兩幅影象的尺寸必須要相等。

6.影象的邏輯運算

影象的邏輯運算是對二值影象進行操作的。包括邏輯與(&)、邏輯或(|)、邏輯非(~)、邏輯異或(I=xor(I1,I2))操作。對影象進行邏輯運算時,先讀取影象矩陣,再把矩陣轉化為二值影象,然後進行相關的邏輯運算操作。