How to automatically separate fibers from nuclei in a histological image ?

2 visualizzazioni (ultimi 30 giorni)
Hi everybody !
I am working on histological images on matlab, and I would like to measure orientation of fibers on my images.
I have tried my orientation determination code on a 'simplistic' image from paint (see bellow) and it's working quite well. I am using structural elements lines that I rotate from 1 to 180° using imopen.
So know my next step is to isolate fibers in my pictures so that I can run the algorithm without measuring nucleus orientation for example.
Here is an example of the kind of images I have :
(fibers I would like to measure are the small black lines)
and without visible fibers :
For know, I have been struggling with this problem using various of thecnics such as opening with small disks, sobel filter with bwareaopen, or even clustering in L*a*b space for the image with colours.
I would like to have your point of view on how I could do such thing (maybe neural network is my only option here?). At first I would like to have a simple algorithm, even if it's no perfect !!
Thank you very much in advance for your help !
Simplistic image :

Risposte (1)

Maneet Kaur Bagga
Maneet Kaur Bagga il 7 Set 2023
Hi Francois,
As per my understanding of the question, to isolate the fibres from the histological images considering a neural netwrok based approach can be a suggested option. For designing a neural network for the fibre segmentation you may use popular architectures like U-Net, FCN(Fully Convolutional Network) or DeepLab.
You may refer to the following MATLAB Documentation for the implementation of the architectures.
U-Net
FCN
DeepLab
For determining the orientation of the fibre you may refer to the Region and Image Properties from the MATLAB Documentation specifically the Orientation section:
I hope this helps!
Thank You
Maneet Bagga
  2 Commenti
François
François il 13 Set 2023
Hi Maneet,
Thank you very much for your answer. I am indeed considering a neural network for the fibre segmentation, but I was wondering if there was a more 'simpler' approach as I don't have a lot of data (2 images in 30720x16016 .ndpi format).
I will anyway try what you suggested and come back to you !
Thank you again,
François Fournier
Maneet Kaur Bagga
Maneet Kaur Bagga il 13 Set 2023
Hi Francois,
For a smaller dataset, you can try these two alternate approaches:
  1. Converting the image to a gray scale image, then applying a thresholding technique(global or adaptive) followed by applying morphological operations like erosion("imerode"), dilation("imdilate"), opening("imopen") or closing("imclose") to enhance the fibre structure and separate them from the backgorund.
  2. Construct a graph representation of the image using the "graydiffweight" function to compute the weights between neighboring pixels based on their intensity differences. Apply graph-based segmentation algorithms like normalized cuts (nCut) or minimum spanning trees (graywatershed) to segment the fibers.

Accedi per commentare.

Categorie

Scopri di più su Deep Learning Toolbox in Help Center e File Exchange

Prodotti


Release

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by