MATLAB 線性運算之圖像相加去噪

一、原理

圖像相加可以對同一場景的多幅圖像求平均值,以降低加性(additive)隨機噪聲。


二、實驗

I= imread('E:\matlab\work\lenna.bmp');     %讀取圖片 [L H]=size(I)                              %獲取大小 K=zeros(L,H) for i=1:100    J=imnoise(I,'gaussian',0,0.02);          %隨機加噪   J1=im2double(J);                         %轉成double型進行相加   K=K+J1; end K=K/100;  subplot(2,2,1),imshow(I),title('原圖像'); subplot(2,2,2),imshow(J),title('加噪聲後圖像');subplot(2,2,3),imshow(K),title('處理後圖像');


效果:



三、對代碼的一些關鍵點的說明

1.im2double

因爲圖像默認是uint8或bool型(二值圖)的。uint8型的計算結果會默認保存爲uint8型,超出範圍會強制轉換,所以要先轉成double型。

2.imnoise

參考百度百科:

MATLAB中函數imnoise 是表示添加噪聲污染一幅圖像,叫做噪聲污染圖像函數。

g=imnoise(f,'gaussian',m,var)將均值m,方差爲var的高斯噪聲加到圖像f上,默認值是均值m爲0,方差var爲0.01的噪聲。
g=imnoise(f,'localvar',V)將均值爲0,局部方差爲V的高斯噪聲添加到圖像f上,其中V是與f大小相同的一個數組,它包含了每一個點的理想方差值。
g=imnoise(f,'localvar',image_intensity,var)將均值爲0的高斯噪聲添加到圖像f中,其中噪聲的局部方差var是圖像f的亮度值的函數。參量image_intensity和var是大小相同的向量,plot(image_intensity,var)繪製出噪聲方差和圖像亮度的函數關係。向量image_intensity必須包含範圍在[0,1]內的歸一化亮度值。
g=imnoise(f,'salt&pepper',d)用椒鹽噪聲污染圖像f,其中d是噪聲密度(即包括噪聲值的圖像區域的百分比)。因此,大約有d*numel(f)個像素受到影響。默認的噪聲密度爲0.05。
g=imnoise(f,'speckle',var)用方程g=f+n*f)將乘性噪聲添加到圖像f上,其中n是均值爲0,方差爲var的均勻分佈的隨機噪聲,var的默認值是0.04。
g=imnoise(f,'poisson')從數據中生成泊松噪聲,而不是將人工的噪聲添加到數據中,爲了遵守泊松統計,unit8和unit16類圖像的亮度必須和光子的數量相符合。當每個像素的光子數量大於65535時,就要使用雙精度圖像。亮度值在0到1之間變化,並且對應於光子的數量除以10e12。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章