1

我按照本教程视频中的说明加载了这个 dicom 图像堆栈

我写了以下代码

 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

我得到了堆栈的这种嘈杂的可视化:

在此处输入图像描述

如何修复它以显示适当的对比度?

4

1 回答 1

1

看起来您正在使用一些任意值(0,100)使图像强度饱和。代替

set (gca, 'clim', [0,100]); 

写:

set (gca, 'clim', [minMRI ,maxMRI ]);

通常这些类型的图像具有比 100 甚至 332 高得多的最大强度,因此请仔细检查max(mri(:))

于 2013-01-20T05:11:19.940 回答