I have bunch of gray-scale input images with blob-noise-like parts (however, they are not an actual noise):

Example of one such image: enter image description here

I need to keep only areas inside red squares and remove the rest as much as possible. Which filter or process is best for this task?

I have tried:

  • Convolution filters but none of them worked or required threshold that can vary image form image
  • Gabor filters, but they are hard to set up correctly.
  • In the Fourier domain, I cannot see any usefulness.
  • Binarization and morphology remove the parts in boxes.
  • I have also come up with an idea to use Hough line detection, but it is not finding the correct line parts (or I have an incorrect implementation).

Machine learning could solve this, but I don't want to use it, since I don't have annotated data.

Do you have any idea?


1 Answer 1


If that's really representative, then good ol' rules-based machine vision processing would work a treat. There's probably names for these algorithms that I don't know:

It looks like your "keep" regions are more than 50% full of light pixels; you could segment to 0 and 1, low-pass, then keep the blobs that are above 50%.

Alternately, you could segment to 0 and 1, dialate everything by half the width of the strokes in your "keep" blobs, then erode everything by twice the width of those strokes. What should be left is a pretty good estimate of your "blobs to keep". Then window those, and use them to edit the original image.


Your Answer

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

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