How would you detect a single noise pixel in an image matrix?
4 views (last 30 days)
Given an grayscale, image matrix of m by n, what methods can be applied to detect a single pixel of noise?
I attempted to first apply a Sobel operator. This results in the noise to appears as the following within the edge detected matrix:
[0 1 0; 1 0 1; 0 1 0];
In which the center at (2,2) is the noise pixel. I searched through the edge detected matrix. While, I found the pixels of noise, I also had a lot of false positives.
I do not think that this method would work, without either a supplemental method or attempting a new method all together. Likewise, this fails to account for noise pixels that too similar to the actual image (i.e. a noise value of 1 in the center of image values of 15-20).
Added example of single pixel being applied with example image.
In terms of words to describe noise, it is a single pixel that is anywhere from dark to bright. This does create issues that it can be impossible to detect. (In terms of the example posted, if it was applied by chance at (256,256), a value of 103-105.)
Going back to my attempt from earlier, NoiseAdded.jpg shows a random pixel of noise added, with NoiseAdded-Sobel, shows the pattern that is created upon the single pixel.
Image Analyst on 12 Aug 2022
If you had to describe it in words, how would you describe "noise"? Is it values above or below some gloal threshold? Or above or below some threshold determined by the image values in a local, sliding window? Is it some value more than a certain number of standard deviations away from the mean?
See my salt and pepper noise removal demos, attached.
If you have any more questions, then attach your image and code to read it in with the paperclip icon after you read this:
and indicate which pixels you consider to be noise.