使用DICOM文件的直方图?

时间:2015-06-11 16:22:21

标签: matlab dicom

我正在尝试用DICOM文件制作直方图,但对于我的生活,我仍然无法弄清楚为什么我得到索引的负值。我转换了图像,但索引仍然是负面的,我不确定我做错了什么。这些值对于文件大小,标题,深度和宽度应该都是正确的,而我正在尝试处理的程序是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); index必须是正整数或逻辑。

我也正在使用的等式是:

Bin宽度=(图像深度)/(Bins的数量)

1 个答案:

答案 0 :(得分:1)

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

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