How to change pixel values of background of an MRI Segmented result ?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I am trying to run a script for object segmentation based on GMM. As the example presented below the image is segmented into 3 classes. the problem is that the background of the image has the same pixel value of one of the segmented classes. If i change into 4 classes the segmentation result is worse. Is there any solution?
0 Commenti
Risposte (3)
Walter Roberson
il 20 Nov 2016
imclearborder -- unless the white part touches the border (if it does, then pad the image with a row of background before doing the clearing)
0 Commenti
Ynne
il 20 Nov 2016
1 Commento
Walter Roberson
il 20 Nov 2016
Once you have cleared the border to black, you can imfill('holes') . That will get you an ROI mask.
The median of the outside edge values is probably going to be the border level. Pad the image with a row of that in case the real stuff touches the edge. imclearborder. imfile('holes')
But as for extracting: what data structure does your GMM segmentation need? Does it already handle being passed an ROI mask? Does it just want a vector of values? If it wants something 2D then you could extract down to a bounding box but you would still have problems.
Image Analyst
il 20 Nov 2016
What function are you using to get the GMM model? gmdistribution() or fitgmdist() followed by cluster? You can make a vector of pixel values to assign a cluster label to. Then you make another N-by-2 array that has the locations (row, column) of all the pixels in the ROI. Then with that you can create a classified image, and assign the pixels outside the ROI to some class number that identifies them as not assigned, like 0 or -1 or whatever.
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!