Dicom file not displaying properly.

4 views (last 30 days)
Warid Islam
Warid Islam on 15 Nov 2022
Commented: Warid Islam on 18 Nov 2022
I am trying to read and display dicom(.dcm) file in matlab and save it later. However, the file is not displaying properly. Please find my code below:
info=dicominfo("IMG-0012-00218.dcm");
I=dicomread(info);
figure, imshow(I,[])
h = drawfreehand; %draw something
M = ~h.createMask();
I(M) = 0;
imshow(I,[]);
imwrite(I,'Image1.png','mode','loseless')
I am unable to attach the .dcm file here as it is not allowing me to do it. I am getting the image below which is not correct. I want the image to be displayed in the way defined in 'IMG-0012-00218.png'.

Answers (1)

Harsha
Harsha on 18 Nov 2022
Hi Warid Islam
To get the output as shown in IMG-0012-00218.png you have to change the window level in the raw data.
Refer to this MATLAB answer by Simon Chan to resolve your issue.
  1 Comment
Warid Islam
Warid Islam on 18 Nov 2022
Thank you for your response. I have a query. Your code solves my above question. I want to do further operation on that image. I want to manually segment the image and save the resultant image in the .png format. I tried the code below. However, I didn't get the desired result.The saved image looks like below.
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')

Sign in to comment.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!