我正在 c#.net 中开发一个 dicom 查看器。我需要一点帮助来计算 Pixel 的 HU 值。我知道计算 HU 的公式是
HU = Pixel Value * Rescale Slope + Rescale Intercept
我做了一些计算并从我原来的 dicom 像素值中检索出来,但这并没有给我正确的 HU 值。我的问题是像素值到底是什么。任何人都可以帮我解决这个问题。
这是我的代码
public void calculateHU(string x,string y)
{
Int32 intercept, slope,pix;
intercept = -1024;
slope = 1;
int xx, yy;
xx = Convert.ToInt32(x);
yy = Convert.ToInt32(y);
xx = xx +Convert.ToInt32( imagerect.X);
yy = yy + Convert.ToInt32( imagerect.Y);
pix = getpixelvalue(xx,yy);
double hu = pix * slope + intercept;
}
public Int32 getpixelvalue(int x, int y)
{
string c;
c = pix16[imgno][y * bmd.width + x].ToString();
return Convert.ToInt32(c);
}