2013-12-22 65 views
0

根據鹽和胡椒的概率,如何將椒鹽噪聲分別添加到圖像中。 imnoise作爲一個整體的噪聲密度將取一個值,該值是鹽(白點)和胡椒(黑點)的測量值。我想知道如果我們只是分別用兩種不同的概率添加白色(鹽)和黑色(胡椒)噪音。必須使用什麼等式?手動添加圖像中的脈衝噪聲

回答

1
clc; 
close all; 
originalImage = imread('Cameraman.tif'); 
[rows cols] = size(originalImage); 
totalPixels = int32(rows * cols); 
subplot(1, 2, 1); 
imshow(originalImage); 
percentage = str2double(cell2mat(inputdlg('Enter the percent noise: ', 'Enter answer', 1, {'2'})))/100.; 
numberOfNoisePixels = int32(percentage * double(rows) * double(cols)); 
locations = randi(totalPixels, [numberOfNoisePixels, 1]); 
noisyImage = originalImage; 
noisyImage(locations) = 255; 
subplot(1, 2, 2); 
imshow(noisyImage, []); 

來源

https://groups.google.com/forum/#!topic/comp.soft-sys.matlab/YcF2xZwnq1o

那請問鹽噪聲,椒鹽噪聲會

noisyImage(locations) = 0; 

,而不是

noisyImage(locations) = 255; 
+0

只是一個問題,我打正確的前)。噪音的百分比和噪音的「概率」。在圖像處理中這兩個相同的術語? – learner

+0

不完全,但足夠接近。 %是一個固定的項,所以0.05%將意味着始終有0.05 *總像素。概率將會接近0.05 *總像素。隨着像素增加,這兩個術語將開始意味着相同的東西 – exussum

+0

這種方法不會阻止在相同的像素處添加鹽和噪聲(可能需要或不需要) –

3
img = .5*ones(100,200); %// example image 
p_salt = .05; %// probability of salt 
p_pepper = .01; %// probability of pepper 

if strcmp(class(img),'uint8') 
    salt_value = uint8(255); 
else 
    salt_value = 1; 
end 
pepper_value = 0; 

aux = rand(size(img)); %// generate random values 
img(aux<=p_salt) = salt_value; %// add salt 
img((aux>p_salt) & (aux<=p_salt+p_pepper)) = pepper_value; %// add pepper 

imshow(img) %// show image 

該方法與imnoise中使用的方法相似,避免了在相同像素處添加鹽和胡椒粉。它假定p_salt + p_pepper至多1

enter image description here

+0

根據強度會對此代碼有任何影響值在0-255或0-1之間? – learner

+0

@LandonAshes更正。感謝您指出 –

0

此代碼是簡單而有用的(在MATLAB同imnoise)

im=imread('Parrot.jpg'); 
B=rgb2gray(im); 
%if Pa==Pb; 
percen=10; 
%Noise level 10 
Prob_den_f=255*percen/100; 
NoiseImg = B; 
Rmatrix = randint(size(B,1),size(B,2),[0,255]); 
NoiseImg(Rmatrix <=Prob_den_f/2) = 0; 
NoiseImg(Rmatrix >Prob_den_f/2&Rmatrix<Prob_den_f) =255; 
subplot(1,2,2),imshow(NoiseImg),title('Add ''Salt and Pepper'' Noise'); 
subplot(1,2,1),imshow(B),title('Original Image'); 
+0

請添加說明,而不是僅發佈代碼。 –