For my undergraduate, I must analyze images taken in the ocean to count and measure the size of the particles of water.
my problem: besides the desired particles of water, images show hexagonal spots throughout the image in: - different sizes - not regular shape - different values โโfor shades of gray
(Example image below!)
It is clear that these patches will falsify my image analysis regarding the size and number of particles. For this reason, these corrections must be somehow discovered and removed.
Since this will be only a small part of the work in my dissertation, I do not want to spend a lot of time on it and have already tried the classical methods: (imageJ)
- plays with a threshold (as a result, the required particles of water are also removed).
- analyze the image, including hexagonal corrections, and then sort the largest areas (hexagonal patches have the largest areas, but you will still have a lot of hacks).
- game with filters: using a Gaussian filter on a duplicated image and subtracting a copy from the original removes many patches (in decreasing gray shades), but also removes little needed water particles and, therefore, falsifies the result again.
a more complex and time-consuming solution would be to use an implemented library, for example, for matlab or opencv, to determine the points that describe the shapes. but so far I have not been able to find the code that matches my task.
Have any of you created such code that I could use for my task or any other idea?

You can also see many hexagonal patches at different depths. small spots with a large pixel value are the desired particles!
source share