如何使用MATLAB去除影像中的椒鹽噪聲?


MATLAB 是一款廣泛應用於影像處理的數字工具,例如影像變換、影像降噪、邊緣檢測等。在本教程中,我將解釋如何使用 MATLAB 從數字影像中去除椒鹽噪聲。

在數字影像中,“椒鹽噪聲”是一種脈衝噪聲,它會降低影像質量並導致影像處理、分析和傳輸中的錯誤。因此,去除影像中的椒鹽噪聲對於最大程度地減少影像處理和分析帶來的挑戰非常重要。

在討論從影像中去除椒鹽噪聲的過程之前,讓我們先簡要概述一下椒鹽噪聲。

什麼是椒鹽噪聲?

椒鹽噪聲是一種脈衝噪聲,會降低數字影像的質量,其特徵是在整個影像中散佈著明顯的黑色和白色畫素。這種噪聲使影像處理和分析等任務變得具有挑戰性。

下面顯示了一幅帶有椒鹽噪聲的影像。

可以看出,椒鹽噪聲表現為高對比度的獨立畫素,與影像的其餘部分明顯不同。

因此,為了提高影像質量,我們必須去除椒鹽噪聲,以便影像能夠適用於各種影像處理工作。

去除影像中椒鹽噪聲最常用的技術是中值濾波。這種技術透過檢測並用基於其區域性鄰域的合適畫素替換影像中的所有噪聲畫素來工作。

我們可以使用 MATLAB 等數字工具,使用中值濾波方法從數字影像中去除椒鹽噪聲。

椒鹽噪聲的成因

以下是影像中椒鹽噪聲的主要原因

  • 透過網路傳輸影像可能會引入椒鹽噪聲。

  • 當影像儲存在有噪聲的儲存介質中時,它也可能損壞影像的畫素並引入椒鹽噪聲。

  • 影像中的椒鹽噪聲也可能由於數字化過程(即模擬到數字轉換)中的錯誤而發生。

  • 影像中的椒鹽噪聲也可能是成像裝置(如相機、掃描器等)的感測器和硬體部件故障的結果。

現在讓我們討論如何使用 MATLAB 從影像中去除椒鹽噪聲。

使用MATLAB去除影像中的椒鹽噪聲

MATLAB 是一種數字工具,可用於從影像中去除椒鹽噪聲。要去除椒鹽噪聲,可以使用中值濾波方法。下面解釋了使用中值濾波器去除椒鹽噪聲的分步過程

步驟 (1) - 使用“imread”函式將噪聲影像載入到工作區。如果需要,將輸入噪聲影像轉換為灰度。

步驟 (2) - 根據影像中噪聲的特徵定義中值濾波器核的大小。

步驟 (3) - 透過應用中值濾波器去除影像中的噪聲。為此,使用 MATLAB 的內建函式“medfilt2()”。

步驟 (4) - 顯示去噪後的影像。

現在,讓我們深入瞭解此過程的實際實現。

示例

以下 MATLAB 程式演示了使用中值濾波器從數字影像中去除椒鹽噪聲的過程。

% MATLAB code to remove salt and pepper noise from image
% Read the noisy image
noisy_img = imread('https://tutorialspoint.tw/assets/questions/media/14304-1687425236.jpg');	% This image does not have noise

% Convert the color image to grayscale
gray_img = rgb2gray(noisy_img);

% Add salt and pepper noise to image (our image does not have)
noisy_img2 = imnoise(gray_img, 'salt & pepper');	% Skip this step as your input image has noise

% Specify the size of median filter kernel
filter_size = [5, 5]; % Adjust the size as per noise characteristics

% Apply the median filter to the noisy image
denoised_img = medfilt2(noisy_img2, filter_size);

% Display the noisy and denoised images
figure;
subplot(1, 2, 1);
imshow(noisy_img2);
title('Noisy Image');

subplot(1, 2, 2);
imshow(denoised_img);
title('Denoised Image');

輸出

程式碼說明

在此 MATLAB 程式碼中,我們首先讀取噪聲影像。然後,我們將其從 RGB 色彩空間轉換為灰度空間進行處理。之後,我們根據影像中噪聲的特徵定義中值濾波器核的大小。

接下來,我們對影像應用中值濾波器以去除其中的椒鹽噪聲,為此我們使用“medfilt2”函式。最後,我們使用“imshow”函式顯示噪聲和去噪後的影像。

因此,這就是我們如何使用 MATLAB 輕鬆去除影像中的椒鹽噪聲。

結論

總之,椒鹽噪聲是一種脈衝噪聲,可能由於傳輸錯誤、數字化錯誤、硬體故障等因素出現在數字影像中。它以散佈在整個影像中的孤立白色(鹽)和黑色(胡椒)畫素的形式出現。這種噪聲會降低數字影像的質量,並使影像處理任務變得複雜。

存在多種不同的方法可用於去除影像中的椒鹽噪聲。其中一種技術是“中值濾波”,我在本文的上一節中藉助 MATLAB 示例對此進行了說明。您可以使用您自己的噪聲影像嘗試以上給出的程式碼,並根據影像噪聲的特徵調整濾波器大小“filter_size”。

更新於:2023年10月10日

541 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.