Matlab之只加鹽噪聲或只加椒噪聲
阿新 • • 發佈:2018-11-25
目錄
一、關於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型別
- randperm(n,k)返回1:n的一維向量中k個隨機不重複數的隨機permutation(排列)
- 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);