1

读取 DICOM 文件时出现问题。这是格式 1.2.840.10008.1.2.4.70(具有一阶预测的过程 14(选择值 1)。我编写自己的软件。

这是我工作的结果。

点击

我还给你一个.dcm 文件

它有什么问题?只有 RadiAnt Dicom Viewer 可以正确打开它(我没有找到任何带有源代码的工作软件)。有人有关于它的教程吗?任何工作代码?

我将不胜感激!感谢帮助。


我告诉你我是怎么做的:

//I have:
numCOL= imageWidth;
numROW= imageHeight;

dwCurrentBufferLength;//-> where I in file

//and other stuff...

//First i decode first row:
//[0][0]

DecodeFirstRow(curRowBuf,dwCurrentBufferLength);

//I calculate difrences
HuffDecode ( table , &val, dwCurrentBufferLength);

//and extend
HuffExtend(extend, val);

curRowBuf[0][curComp]=extend+(1<<(Pr-Pt-1));

//[1-n][0]
//... huff stuff
curRowBuf[col][curComp]=extend+curRowBuf[col-1][curComp];

//Then i put row to the vector:
for (col = 0; col < numCol; col++) 
{       
v=RowBuf[col][0]<<point_transform_parameter;                    
m_vOutputBuf.push_back(v);
}   

//Rest of columns
//[0][m]
curRowBuf[0][curComp]=extend+prevRowBuf[0][curComp];    


predictor = left =curRowBuf[leftcol][curComp];
//[1-n][m]
curRowBuf[col][curComp]=extend+predictor;
//and also put it to vector ^^

我必须在哪里分这 1000?

4

2 回答 2

2

很可能您在计算 HU 值时没有考虑Rescale Intercept,标记 (0028,1052)。根据 DICOM 文件,截距为 -1000。

要获得图像的适当 HU 值,请使用以下公式:

HU = rescale_slope * pixel_value + rescale_intercept

其中Rescale Intercept因此从标签 (0028,1052) 和Rescale Slope从标签 (0028,1053) 获得。

于 2012-09-17T14:19:09.160 回答
0

这是我使用 gdcmviewer 看到的:

$ gdcmviewer 3DSlice1.dcm

在此处输入图像描述

GDCM是开源的,你可以学习它。

于 2012-09-20T16:30:07.860 回答