1. 程式人生 > >Matlab之只加鹽噪聲或只加椒噪聲

Matlab之只加鹽噪聲或只加椒噪聲

目錄

一、關於imnoise

二、只加椒噪聲

三、只加鹽噪聲


 

一、關於imnoise

MATLAB內建函式imnoise中有屬性'salt & pepper',新增的是椒鹽噪聲。

注意'salt & pepper'中間的空格不能少,不然會報錯。

 

二、只加椒噪聲

我們無法通過內建的imnoise函式得到只加椒噪聲的影象,我們需要手動給圖片加椒噪聲。

程式碼如下:

% Pepper Noise
pepper_ind = randperm(uint16(numel(tif)),uint8(0.1*numel(tif)));
tif_pepper = tif1;  % tif1為uint8型別
tif_pepper(pepper_ind) = 0;
tif_pepper = im2double(tif_pepper);  %將得到的椒影象轉化為double型別
  1. randperm(n,k)返回1:n的一維向量中k個隨機不重複數的隨機permutation(排列)
  2. numel的返回值是double的,要將其轉成int型別,為了防止溢位,我們選擇uint16

 

三、只加鹽噪聲

類似於只加椒噪聲,也不能通過imnoise得到,也需要手動去加,只不過區別在於鹽噪聲我們設定的值是255而已

程式碼如下:

% Salt Noise
salt_ind = randperm(uint16(numel(tif)),uint8(0.1*numel(tif)));
tif_salt = tif1;
tif_salt(salt_ind) = 255;
tif_salt = im2double(tif_salt);