一、高斯噪聲介紹
高斯噪聲是指在傅里葉變換下呈現高斯性質的噪聲,又被稱為白噪聲,是自然、社會科學和其他領域中最常見的一種隨機噪聲。在數字信號處理中,高斯噪聲是模擬信號轉為數字信號時產生的噪聲信號,由於其特定的統計特性被廣泛地應用於數字圖像處理領域中。
在matlab中,我們可以使用內置函數“imnoise”來為圖像添加高斯噪聲。
二、imnoise添加高斯噪聲
以下是示例代碼,演示如何使用imnoise添加高斯噪聲:
% 載入原始圖像 I = imread('lena.tif'); % 添加高斯噪聲 J = imnoise(I,'gaussian',0,0.025); % 顯示原始圖像和添加噪聲後的圖像 subplot(1,2,1), imshow(I), title('Original image'); subplot(1,2,2), imshow(J), title('Image with Gaussian noise');
imnoise函數調用格式為:
J = imnoise(I,'gaussian',m,n)
其中I表示原始圖像,在此例中為’lena.tif’。’gaussian’表示添加的噪聲類型為高斯噪聲。m和n分別表示噪聲的均值和方差。在此例中,均值為0,方差為0.025。
三、自定義高斯噪聲
如果要自定義高斯噪聲,可以使用一些基本的數學和matlab函數。下面是一個示例代碼,演示如何自定義高斯噪聲:
% 載入原始圖像 I = imread('lena.tif'); % 定義均值和方差 m = 0; v = 0.025; % 計算噪聲 G = m + sqrt(v)*randn(size(I)); % 將噪聲添加到圖像中 J = im2double(I) + G; % 顯示原始圖像和添加自定義高斯噪聲後的圖像 subplot(1,2,1), imshow(I), title('Original image'); subplot(1,2,2), imshow(J), title('Image with custom Gaussian noise');
在此示例中,我們使用randn函數生成一個與原始圖像相同尺寸的高斯分布的噪聲G。然後,我們將噪聲添加到原始圖像的亮度值中,通過im2double函數將原始圖像轉換為double類型,以便進行數學運算。
四、高斯噪聲的去噪
在數字圖像處理中,去噪是一個重要的步驟。matlab中提供了許多去噪函數,可以使用這些函數減少高斯噪聲。以下是一些常用的去噪函數:
1) medfilt2:中值濾波器使用方形掩模計算每個像素的中值,以減少高斯噪聲。以下是示例代碼:
% 載入原始圖像和添加噪聲後的圖像 I = imread('lena.tif'); J = imnoise(I,'gaussian',0,0.025); % 使用中值濾波器進行去噪 K = medfilt2(J,[3 3]); % 顯示原始圖像、添加噪聲後圖像、去噪後圖像 subplot(1,3,1), imshow(I), title('Original image'); subplot(1,3,2), imshow(J), title('Image with Gaussian noise'); subplot(1,3,3), imshow(K), title('Denoised image with median filter');
medfilt2使用方式如下:
K = medfilt2(J,[m n])
其中J為需要去噪的圖像,[m n]為掩模大小。
2) wiener2:維納濾波器是一種線性濾波器,用於消除圖像的噪聲。以下是示例代碼:
% 載入原始圖像和添加噪聲後的圖像 I = imread('lena.tif'); J = imnoise(I,'gaussian',0,0.025); % 使用維納濾波器進行去噪 K = wiener2(J,[5 5]); % 顯示原始圖像、添加噪聲後圖像、去噪後圖像 subplot(1,3,1), imshow(I), title('Original image'); subplot(1,3,2), imshow(J), title('Image with Gaussian noise'); subplot(1,3,3), imshow(K), title('Denoised image with Wiener filter');
wiener2使用方式如下:
K = wiener2(J,[m n])
其中J為需要去噪的圖像,[m n]為PSF大小(即點擴散函數)。
五、總結
在本文中,我們簡單介紹了高斯噪聲,並演示了如何在matlab中添加和去除圖像中的高斯噪聲。使用imnoise函數可以通過調整不同的參數來模擬各種強度和類型的高斯噪聲。同時,我們也介紹了一些matlab內置的去噪函數,包括中值濾波器和維納濾波器,以減少高斯噪聲。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243504.html