0
$\begingroup$

I have an image that looks like this (it might appear low res in a browser because it is 16 MB). This image was taken with a scanning electron microscope, but because the equipment is outdated there is a lot of noise within the image.

What I would like to do is develop a program (in Java) that would take this image as an input and try to remove the noise as much as possible to produce a high quality image.

However, being a beginner in the field of image/signal processing, I have no idea where to begin researching techniques. I was wondering if you guys had any good starting points for me to look into, or perhaps de-noising algorithms/techniques that I could research to potentially help me reach my goal.

$\endgroup$
1
  • $\begingroup$ I would consider first looking into basic convolution-based filtering techniques, whether it is sharpening filters mixed with Gaussian smoothing filters or whatnot. Those would be simple to implement and could give you the results you need. If those aren't sufficient, then consider looking into more advanced techniques. What could also be beneficial is using multiple snapshots of the same scene and using estimation algorithms (perhaps a Kalman Filter) to estimate the optimal denoised scene. $\endgroup$
    – spektr
    Jul 1, 2017 at 6:29

2 Answers 2

2
$\begingroup$

You may start with median or Gaussian filters. There are many libraries that implement them and they are simple to use.

That said, I think this approach may be not enough because from what I've seen this noise is not an image noise in the classical sense, i.e. it's not randomly distributed 'dots', but rather periodic 'waves' and their presence is connected to the measurement head performance. You could do a Fourier transform of this image, remove the highest spatial frequencies, which may get rid off most of these waves as they change much more quickly than the relevant information, and maybe smooth it with Gaussian filter afterwards.

$\endgroup$
0
$\begingroup$

I would use the Bilateral Filter or the Non Local Means Filter.

Both are straight forward to implement and their results are surprisingly good.
They retain much more details than the Spatially Invariant Linear Filter such as the Gaussian Filter.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.