This function can be used for adding different kind of impulse noises (i.e. Salt & Pepper noise and Random-value impulse noise) to image.
Salt & Pepper Noise values are 0 or 255 but random-value impulse noise values vary from 0 to 255.
website : http://kannan.keizer.googlepages.com
Kannan Keizer (2019). Impulse Noise Addition (https://www.mathworks.com/matlabcentral/fileexchange/22141-impulse-noise-addition), MATLAB Central File Exchange. Retrieved .
1st: you're using incorrect statistics when you change the output of RAND the way you do (setting 0 values to 1 and dividing by the max value). Just use the output of RAND directly in your comparisons, that is what RAND is designed for.
2nd: A function that asks to enter a choice every time it is run is inconsistent with all the other functions in MATLAB (and annoying), the choice should be an input parameter to the function. Also, you could provide default values for the ND and D parameters.
3rd: There is no need to output the result to a figure window. Let the user decide whether they want that or not.
Modified based on Cris Luengo' comments.