CT image display error.

1 次查看(过去 30 天)
I am trying to display CT Dicom slices in a montage and used the code below but I get only some parts of the image read and not all of it. The Images are attached below. I need the actual image to be read using the program. Can anyone help me fix this.
The original images are attached as a zip file "images.zip".
clear %no variables
close all %no figures
clc %empty command window
ff = fullfile(pwd, '2.16.840.114421.80674.9357820679.9389356679');
files = dir(fullfile(ff, '*.dcm'));
fname = {files.name};
info = dicominfo(fullfile(ff, fname{1}));
voxel_size = [info.PixelSpacing; info.SliceThickness];
rd = dicomread(fullfile(ff,fname{1}));
sz = size(rd);
num_image = length(fname);
ct = zeros(info.Rows, info.Columns, num_image, class(rd));
for i=length(fname):-1:1
fname1 = fullfile(ff, fname{i});
ct(:,:,i) = uint16(dicomread(fname1));
end
montage(reshape(uint16(ct), [size(ct,1), size(ct,2), 1, size(ct, 3)]), 'DisplayRange', []);
set (gca, 'clim', [0,100]);
im = ct(:, :, 200);
maxl = double(max(im(:)));
imt = imtool(im, [0, maxl]);
Original Image:
Read Image:
  5 个评论
Walter Roberson
Walter Roberson 2016-6-29
You can zip the image and attach that.
anusha reddy
anusha reddy 2016-6-29
That worked. I've attached the images. Thank you.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2016-6-29
CT scans contain negative values, but you are using uint16() which will set all negative values to 0.
  5 个评论
Walter Roberson
Walter Roberson 2016-6-29
Get rid of the
set (gca, 'clim', [0, 100]);
That tells it to show only values between 0 and 100, but you have values from -1000 to +1132 (over the 4 images that you included in the .zip)
anusha reddy
anusha reddy 2016-6-29
That worked. Thank you. And I appreciate the effort :)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Medical Physics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by