我正在尝试用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的数量)
答案 0 :(得分:1)
我不熟悉MATLAB,但看起来你只是从特定的搜索点读取文件。使用DICOM工具包可确保您获得实际的像素数据属性条目手柄,以处理您可能遇到的任何编码。
另外,检查您的DICOM阅读器是否正在应用重新缩放斜率和截距。通常这会将CT图像转换为具有负值的Hounsfield单位(尽管-4094似乎有点多,因为空气为-1000)。