Salt and pepper code in matlab
Mostrar comentarios más antiguos

I want to convert from this opencv code to matlab code.
My tried code:
% I generated random salt & pepper noise
dim = size(I);
[m, n] = size(I);
saltpepper_noise=zeros((m, n));
saltpepper_noise=rand(m,n); #creates a uniform random variable from 0 to 1
for i in range(0,m):
for j in range(0,n):
if saltpepper_noise[i,j]<=0.5:
saltpepper_noise[i,j]=0
else:
saltpepper_noise[i,j]=255
1 comentario
Nathan Blanc
el 10 de Nov. de 2020
Not sure I understand your code fully, is I defined before the code begins?
in any case, a few corrections
- the asignment [m,n]=x is impossible in matlab, you can should define them seperatly:
m=size(I)(1)
n=size(I)(2)
- no need to define saltpepper_noise twice, you can just use the second line
- in a for loop, you use the syntax for i=1:m
in general, i suggest you use matlab's online documentation, it's very helpful and full of examples
Respuestas (2)
Image Analyst
el 10 de Nov. de 2020
Editada: Image Analyst
el 10 de Nov. de 2020
If you want to use conditionals and be as close as possible to that code (instead of using the built-in imnoise function), then you can do this:
% Get grayscale image
saltpepper_img = imread('cameraman.tif');
[img.rows, img.cols] = size(saltpepper_img);
% Create noise image.
saltpepper_noise = randi(255, img.rows, img.cols, 'uint8');
subplot(2, 2, 1);
imshow(saltpepper_noise);
title('Original Noise', 'FontSize', 15);
black = saltpepper_noise < 10;
subplot(2, 2, 2);
imshow(black);
title('Black Locations', 'FontSize', 15);
white = saltpepper_noise > 245;
subplot(2, 2, 3);
imshow(white);
title('White Locations', 'FontSize', 15);
% Assign black and white to gray scale image.
saltpepper_img(black) = 0;
saltpepper_img(white) = 255;
subplot(2, 2, 4);
imshow(saltpepper_img);
title('Grayscale image with noise', 'FontSize', 15);

Also see attached demos.
2 comentarios
Rooter Boy
el 10 de Nov. de 2020
Image Analyst
el 10 de Nov. de 2020
In this forum, you can thank people by clicking the Vote icon or "Accepting the answer" to give them reputation points. Thanks in advance.
Image Analyst
el 10 de Nov. de 2020
0 votos
There is a salt and pepper option for imnoise(). Just use that.
1 comentario
Rooter Boy
el 10 de Nov. de 2020
Categorías
Más información sobre Image Category Classification en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!