我按照this dicom stack of images上的说明加载了this tutorial video。
我写了以下代码
clear all; close all; clc; imtool close all;
%loads the full dicom stack
fileFolder = fullfile (pwd, 'dicom_test'); %se debe estar al mismo nivel de la carpeta
files = dir (fullfile(fileFolder, '*.dcm'));
fileNames = (files.name);
%%examine file header (metadata, from DICOM stack)
info = dicominfo (fullfile (fileFolder, fileNames)); %%fileNames{1} or fileName[1] both fail
%extract size info from metadata
voxel_size = [info.PixelSpacing; info.SliceThickness]';
%read one file to get size
I = dicomread(fullfile(fileFolder, fileNames));
classI = class(I);
sizeI = size(I);
numImages = length (fileNames);
%read slice images; populate 3D matrix
bWaitBar = waitbar (0, 'reading DICOM files');
%create array to store the images
mri = zeros(sizeI(1), sizeI(2), numImages, classI);
%load the images into the mri array
for i=length(fileNames): -1:1
fname = fullfile(fileFolder, fileNames);
mri(:,:,i) = uint16(dicomread(fname));
waitbar((length(fileNames)-i+1)/length(fileNames));
end
delete (bWaitBar);
%explore dataset as a montage
% imtool close all
minMRI = min(mri(:)); %min is 0 %%variables no usadas
maxMRI = max(mri(:)); %max is 332 %%variables no usadas
montage (reshape(uint16(mri),[size(mri,1), size(mri,2), 1, size(mri,3)]));
set (gca, 'clim', [0,100]); % got this value by call to imcontrast
我得到了堆栈的这种嘈杂的可视化:
如何修复它以显示正确的对比度?
答案 0 :(得分:1)
看起来像是用一些任意值(0,100)使图像强度饱和。而不是
set (gca, 'clim', [0,100]);
写:
set (gca, 'clim', [minMRI ,maxMRI ]);
通常这些类型的图像具有比100或甚至332更高的最大强度,因此请仔细检查max(mri(:))
值