For my bachelor thesis I need to analyse images taken in the ocean to count and measure the size of water particles.
my problem: besides the wanted water particles, the images show hexagonal patches all over the image in: - different sizes - not regular shape - different greyscale values
(Example image below!)
It is clear that these patches will falsify my image analysis concerning the size and number of particles. For this reason this patches need to be detected and deleted somehow.
Since it will be just a little part of the work in my thesis, I don't want to spend much time in it and already tried classic ways like: (imageJ)
- playing with the threshold (resulting in also deleting wanted water particles)
- analyse image including the hexagonal patches and later sort out the biggest areas (the hexagonal patches have quite the biggest areas, but you will still have a lot of haxagons)
- playing with filters: using gaussian filter on a duplicated image and subtract the copy from the original deletes many patches (in reducing the greyscale value) but also deletes little wanted water particles and so again falsifies the result
a more complicated and time consuming solution would be to use a implemented library in for example matlab or opencv to detect points, that describe the shapes. but so far I could not find any code that fits my task.
Does anyone of you have created such a code I could use for my task or any other idea?
You can see a lot of hexagonal patches in different depths also. the little spots with an greater pixel value are the wanted particles!