Algorithm recommendation for texture analysis/segmentation
I need to find areas with bulk of spherical objects (for further analysis) when the image contains also areas which are not interesting. A typical image looks like this:
I tried texture analysis using Gabor filter, rotating them around, and checking where they match multiple directions (threshold and blur the result, add all of them together, dilate the result to get contiguous area), indicating there are edges in all directions (which will be the case for spheres but not for flat areas, like that one on the right) - this is in one particular direction:
and this is the final result:
It could be made better by tuning various params, but before I go there: I'd like to have suggestions for a better-suited algorithm for this task -- I've been browsing the internet for texture analysis strategies, such as Haralick features, SURF and others, but having no experience with any of those, it is hard to decide which path to pursue. I hope someone might point me to the right direction. The implementation will be in c++/OpenCV. Thanks!
EDIT: The approach must also work on b/w images, not supposing any particular colors, purely by analyzing texture.
The world is moving towards Deep Neural Networks! Why not try those? 12
Deep learning is not the solution for all. At least you will need thousand and much more images for learning which is not always available.
@VxW actually that is incorrect. Due to the uprising trend of transfer learning and pretrained weight files on large datasets like pascal VOC, training a classification system for these problems can easily be done with only a hundred samples per class, possibly even lower (we have a multi class system running with 15 samples per class as training data only)...