Salt and pepper code in matlab

조회 수: 38 (최근 30일)
Rooter Boy
Rooter Boy 2020년 11월 10일
댓글: Image Analyst 2020년 11월 10일
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
Nathan Bblanc
Nathan Bblanc 2020년 11월 10일
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

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2020년 11월 10일
편집: Image Analyst 2020년 11월 10일
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
Rooter Boy
Rooter Boy 2020년 11월 10일
Sir, thank you very much.
Image Analyst
Image Analyst 2020년 11월 10일
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
Image Analyst 2020년 11월 10일
There is a salt and pepper option for imnoise(). Just use that.
  댓글 수: 1
Rooter Boy
Rooter Boy 2020년 11월 10일
I want to use with if conditionals.
Mat black = saltpepper_noise < 30;
Mat white = saltpepper_noise > 225;
Mat saltpepper_img = img.clone();
saltpepper_img.setTo(255,white);
saltpepper_img.setTo(0,black);
I don't know how to adapt this for my codes.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by