AdipoCount is an automatic adipoytes counting system using image processing algorithms, which can significantly imporve the efficency of adipoytes counting. It contains three modules: membrane segmentation module, re-segmentation module and cell counting module. Membrane segmentation module can segment the membrane, re-segmentation module can estimate some miss-stained membrane and improve the segmentation result, and the cell counting module can detect, count and label them on the image. AdipoCount can generate reliable counting result, which can be further corrected manually.

Download   Learn more

Steps of algorithm


Thresholding is to segment the membrane according to the pixel intensity, and turn the input grayscale image into a binary image. Before the thresholding, an illumination correction process is necessary, then we use OTSU to do image binaryzation.

2.Edge detection

Considering some stained membranes are too weak, the intensity is not strong enough to be segmented by thresholding, so edge detection is also used to make sure all stained membranes can be segmented. Before the edge detection, a histogram equalization process is implemented to enhance the contrast of image, so the edge can be more easily to be detected.


We combine the thresholding result and edge detection result together, and then analyze all the connected domain, filter all the domain which is smaller than T. Then we implement open and close operation to filter noise.


Use watershed algorithm to do resegmentation for those under-segmented area. Before the watershed transform, we first compute the distance map, in which every pixel’s value is the distance from the nearest zero-point. Then we use watershed algorithm to do further image segmentation on the distance map. And then we choose proper watershed as the possible membrane.

5.Cell analysis

We use region growing to get all the connected domain, and label every cell with a number, at the same time, we can get the area of every cell.

Introduction to AdipoCount


Choose an image and do segmentation.

Manual correction

We can select two points in the segmentation result and draw a line between them as a new membrane. And if we want to delete a membrane, we can draw a rectangle on top of the segmentation result and eliminate membrane inside it.


Implement cell counting and give labels of cell on the image.

Code download

Please complete the relevant information to get the decompression code, click here to get the code