使用 DICOM 文件的直方图?

A histogram using a DICOM file?

我正在尝试从 DICOM 文件中制作直方图,但对于我的一生,我仍然无法弄清楚为什么我得到的索引值为负值。我已经转置了图像,但索引仍然是负数,我不确定自己做错了什么。对于文件大小、header、深度和宽度,这些值应该都是正确的,我正在尝试处理它的程序是 MATLAB。

clear 
fpointer=fopen('PIG_CT','r');
fseek(fpointer,980,'bof');
img=zeros(512,512);
img(:)=fread(fpointer,(512*512),'short');
img=transpose(img);
depth = 16;
width = depth/64;
fmax = max(max(img));
fmin = min(min(img));
hist64 = zeros(64,1);
for i = 1:512
  for j = 1:512
    rho = img(i,j);
    b64 = floor(rho/width+1)+1;
    hist64(b64,1)= hist64(b64,1)+1;
end
end
bar(hist64)

错误:试图访问 hist64(-4094,1);索引必须是正整数或逻辑值。

我也使用的方程是:

Bin 宽度 =(图像深度)/(Bin 数)

我不熟悉 MATLAB,但看起来你只是从特定的搜索点读取文件。使用 DICOM 工具包将确保您获得实际的像素数据属性条目手处理您可能 运行 进入的任何编码。

此外,检查您的 DICOM reader 是否正在应用重新缩放斜率和截距。通常这会将 CT 图像转换为具有负值的 Hounsfield 单位(虽然 -4094 似乎有点多,因为空气是 -1000)。