Low-contrast segmentation: white objects on white background

Hello,
My images are white bacteria colonies growing on white filtration membranes. I'm wondering how they can be segmented to obtain location and size of the colonies. The images are attached:
I also have the background membrane before the growth started.
Right now I can identify the middle colonies but the outer colonies are more difficult due to lower contrast and uneven illumination.
Any ideas are highly welcome!

 Respuesta aceptada

Image Analyst
Image Analyst el 24 de Ag. de 2021
Take a blank shot with no colonies in there. Then divide the test image by the blank image to flatten the background. Then you should be able to threshold. If it doesn't work, try a tophat filter, imtophat().
See my Image Segmentation Tutorial

4 comentarios

Thanks a lot!. That almost solved the peripheral colony idenitification problem.
A follow-up question: how can I even the illumination (topographic normalization) on individual colonies? In the example below, the left side is brigher than background, the right side is darker, due to the fact that colonies protrude from the membrane surface. This is important for me because I need to measure the size of the colonies and getting half of it in the binary mask is not good.
What I would do is to try to identify the boundary points, using bwboundary(), that are part of the circular boundary and which are not. Perhaps use sgolayfilt() on the distance of the boundary from the centroid and try to find where the change point is (maybe findchangepts()). Then use the FAQ
to fit those boundary points to a circle. Then either use the actual or fitted points, and for the "straight" line across the blob, replace those points with the fitted circle points.
Thanks! I've implemented what you said and the results look very promising. For future reference I attach the image of the circles fitted to two line segments.
You might look at the residuals for the circles fitted to each side and take only the one that has the lowest residuals because it looks like the smoothest one is the legitimate boundary and the rough border is the one that cuts through the middle of the circle. Or try an edge filter with a very large window.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Image Processing Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 24 de Ag. de 2021

Comentada:

el 12 de Sept. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by