Segmentation not working on Dicom images
Afficher commentaires plus anciens
This is related to a previous question I asked before.
I want to manually segment tumors from Dicom images. I tried the code below but I get a greyish image.
I=dicomread('IMG-0012-00219.dcm');
metadata = dicominfo('IMG-0012-00219.dcm');
WC = metadata.WindowCenter; % original [40; 40]
WW = metadata.WindowWidth;
figure, imshow(I,[WC(1)-WW(1), WC(1)+WW(1)]);
h = drawfreehand; %draw something
M = ~h.createMask();
I(M) = 0;
imshow(I,[WC(1)-WW(1), WC(1)+WW(1)]);
imwrite(im2double(I),'Image3.png','mode','loseless')
The segmentation works fine, but the image is greyish which is not desirable. Any suggestions would be appreciated.
5 commentaires
Simon Chan
le 22 Nov 2022
You may use a new Window Level and W8ndow Width instead of the default one from the original dicom image. The default one is for the entire image viewing purpose which may not be optimum for the segmented image.
Warid Islam
le 28 Nov 2022
DGM
le 28 Nov 2022
You either have to shift/rescale all the image data, or you simply don't use zero for the fill color. It depends if you want to preserve the relative scale and value of the image data.
If you don't care about the absolute scale of the data and all you want is an image for visualization purposes, you might be able to just do something like this:
% ...
h = drawfreehand; %draw something
M = ~h.createMask();
% create a copy and normalize it WRT the window metadata
outpict = mat2gray(I,[WC(1)-WW(1), WC(1)+WW(1)]); % unit-scale double
outpict(M) = 0; % fill background region with black
% display and write
imshow(outpict);
imwrite(outpict,'Image3.png','mode','loseless')
Warid Islam
le 29 Nov 2022
Réponses (1)
Image Analyst
le 22 Nov 2022
I'm not sure what you mean by the image looks greyish. It looks like the masked blob in the middle has the full dynamic range. Do you just want to make the gray background be black? Like (untested)
grayMask = grayImage == grayImage(1,1);
grayMask = bwareafilt(grayMask, 1);
grayImage(grayMask) = 0;
imshow(grayImage, []);
2 commentaires
Warid Islam
le 28 Nov 2022
Image Analyst
le 28 Nov 2022
Please attach the original gray scale image and the segmented (binary) image (the mask image).
Catégories
En savoir plus sur DICOM Format dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

