Charlie Darricau | Semester project |
Section Microtechnique, EPFL | June 2007 |
The goal for this semester project was to develop an ImageJ pulgin that could count and measure the cells nuclei in thick tissues sections. The tissues are marked with DAPI, which makes nuclei become fluorescent.
To segment the image, we decided to work with snakes. Actually, we created a 3D snake, called balloonuscule, adapted from an existing 2D snake, called snakuscule. This 3D snake appears as two concentric spheres, defined by two points. The balloonuscule's associated energy is mainly defined by his contrast. To detect a nucleus, the optimiser tries to move the balloonuscule to minimise its energy, which means having a high intensity inside and a very small intensity in the external volume. Once the balloonuscule is fully optimized, we have the centre and the size of the nucleus detected.
The plugin first detect the location where some balloonuscules will be initialized, then for each location it initializes a balloonuscule and optimises it. The results are processed to keep only one balloonuscule on each nucleus.
The final results, which return the centre and the size of each balloonuscule, are given in a table and in a stack. The figures below show (1) a slice of the input stack, (2) a single balloonuscule before and after optimisation (only three slices), (3) the output table and (4) the output stack.
Figure 1 : input image taken by a confocal microscope (only 1 slice here)
Figure 2 : (A) before, (B) after optimisation of a single snakuscule
Figure 3 : the output table
Figure 4 : output stack, the luminous spheres are close and darkest are further