MATLAB Answers

How to apply Gaussian filter with for loop without imnoise?

2 views (last 30 days)
Hanan Elsayed
Hanan Elsayed on 4 Sep 2021
Commented: DGM on 5 Sep 2021
How can I apply Matlab code to do what the imnoise function does but manually using for loop?

Accepted Answer

DGM on 4 Sep 2021
Edited: DGM on 5 Sep 2021
Replicating the gaussian noise functionality of imnoise() does not require any loops. If someone insists that you need to use loops, make sure to let them know they're wrong.
inpict = im2double(imread('cameraman.tif'));
s0 = size(inpict);
% default parameters used by imnoise()
gaumean = 0;
gauvar = 0.01;
outpict = inpict + gaumean + sqrt(gauvar)*randn(s0);
If you want to know how imnoise() does something, open imnoise() and look at $MLROOT/toolbox/images/images/+images/+internal/algimnoise.m
DGM on 5 Sep 2021
Some functions are very simple (e.g. immse()) and can just be opened and viewed in whole. A lot of functions will call lower-level files, some of which may be viewable m-code. Some may call precompiled binaries which aren't viewable. If you want to find out what something does, start by opening the function file itself and see what it calls. The rest is just digging through the directories in the toolbox.
For a lot of things, you can tell what something does by reading the docs and observing the behavior, although there are plenty of cases where the documentation is incomplete or the wording is vague or misleading in my opinion.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!