How do I get the location of the nuclear membrane (aka inner circle)?

4 views (last 30 days)
I have pictures of many cells with a cell membrane (outer oval) and nuclear membrane (inner circle) marked in red (see image 1). My goal is to count the number of green dots that are centered on the nuclear membrane or inner circle (see image 2). I don't know how to get the location of the nuclear membrane (after segmenting, the image is just a bunch of pixels with the k means cluster). I've tried machine learning (unsuccessfully) and am currently trying a segmentation approach. I used k-means clustering to classify the colors and got a result (see image 3), but the inner circle shows a lot of noise.
How do I reduce the noise in the inner circle / nucleus and filter out the outer circle / membrane? Any feedback on my approach or new methods to try would be appreciated as well.
image 2 (desired output. green = cells with dots on the nucleus, blue = cells with dots NOT on the nucleus, gray = unuseable)
image 3 (after segmentation with k-means clustering)

Answers (1)

Vijeta
Vijeta on 28 Mar 2023
Hi Tiffany,
To accurately count the number of green dots that are centered on the nuclear membrane or inner circle, you need to segment and isolate the nuclear membrane from the rest of the image. Here are some steps you can follow:
  1. Use an edge detection algorithm (such as Canny edge detection) to detect the edges of the cells and the nuclear membrane. This should help you to identify the boundary between the nucleus and the cytoplasm.
  2. Once you have identified the boundary between the nucleus and the cytoplasm, you can use a region growing algorithm to segment the nucleus from the cytoplasm.
  3. After segmenting the nucleus, you can use a filter (such as a median filter or a Gaussian filter) to reduce the noise in the image.
  4. To filter out the outer circle / membrane, you can use a morphological operation such as erosion to shrink the outer boundary of the cell. This should help you to separate the inner and outer regions of the cell.
  5. Once you have segmented the nucleus and filtered out the outer circle / membrane, you can then use a circle detection algorithm (such as Hough transform) to detect the inner circle (nuclear membrane).
  6. Finally, you can count the number of green dots that are centered on the nuclear membrane by applying a threshold to the green channel and detecting local maxima in the resulting image.
Here are some of the resources you can use:
  1. https://www.mathworks.com/help/vision/ref/edgedetection.html?s_tid=doc_ta
  2. https://www.mathworks.com/matlabcentral/fileexchange/35269-simple-single-seeded-region-growing
  3. http://2-d%20median%20filtering%20-%20matlab%20medfilt2%20%28mathworks.com%29
  4. Morphological Operations - MATLAB & Simulink (mathworks.com)
  5. https://www.mathworks.com/help/images/ref/hough.html
Thank You

Community Treasure Hunt

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

Start Hunting!