Provides colony_count.m to automate counting of bacterial colonies.
The approach is as follows:
1. Use Hough transform to locate Petri dish.
2. Threshold with Otsu's method.
3. Count colonies as regional maxima in the original image which are present in the segmentation.
David Young's circular Hough transform functions are required. They are available here:
Currently, a range of Petri dish radii is required as a parameter.
This program was originally developed for a Stack Overflow question found here: http://stackoverflow.com/questions/9954891/counting-colonies-on-a-petri-dish.
Future plans are to increase versatility by automating parameter selection and reducing sensitivity to experimental and imaging conditions (lighting, bright/dark field, media color). Features suggested in comments will be considered for addition.
Daniel Asarnow (2020). Automated Counting of Bacterial Colonies (https://www.mathworks.com/matlabcentral/fileexchange/35943-automated-counting-of-bacterial-colonies), MATLAB Central File Exchange. Retrieved .
You need to use dark field images. Try inverting your image with imcomplement.
I inverted and shrank to 15% size and 103 colonies are counted. The lighting is uneven and correcting like in http://www.mathworks.com/help/images/examples/correcting-nonuniform-illumination.html will help obtain better results. With some experimentation I'm sure you can find the ideal parameters for your images!
Hello sir, I am counting image with this code it gives very high numbers. may be because of RGB masking.
for the following image it shows 3743 count.
Inspired by: Hough transform for circles