How to change pixel values of background of an MRI Segmented result ?
조회 수: 1 (최근 30일)
이전 댓글 표시
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?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/158208/image.png)
댓글 수: 0
답변 (3개)
Walter Roberson
2016년 11월 20일
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
Ynne
2016년 11월 20일
댓글 수: 1
Walter Roberson
2016년 11월 20일
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
2016년 11월 20일
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
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!