Write a function to add random noise to an image in matlab
Show older comments
How do I create a function to add random noise without using imnoise? I am trying to figure out how to do it without using the built-in matlab functions. I know I have to add a random integer to every pixel...
function output=randomnoise(current_img)
for current_img(n)
current_img(n)=current_img(n)+ randi([-255 255],1)
n=n+1
end
This is what I am coming up with right now, but I don't think my loop is visiting each value. How do I visit each pixel and how do I add random noise to it?
1 Comment
Walter Roberson
on 9 Oct 2015
The distribution of random value you add to the pixel is important.
Accepted Answer
More Answers (2)
Walter Roberson
on 9 Oct 2015
0 votes
Arifaa A
on 18 Sep 2019
function output=randomnoise(current_img)
% Cast to double;
current_img = double(current_img);
[rows, columns] = size(current_img)
for col = 1 : columns
for row = 1 : rows
output(row, col) = current_img(row, col)+ randi([-255 255],1)
end
end
noise = randi([-255, 255], rows, columns);
output = current_img + noise;
1 Comment
Image Analyst
on 18 Sep 2019
How is that different than my code? It looks identical.
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!