CT image display error.
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
anusha reddy
le 28 Juin 2016
Commenté : anusha reddy
le 29 Juin 2016
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 commentaires
Réponse acceptée
Walter Roberson
le 29 Juin 2016
CT scans contain negative values, but you are using uint16() which will set all negative values to 0.
5 commentaires
Walter Roberson
le 29 Juin 2016
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)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Medical Physics dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!