首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DICOM中的窗口计算

DICOM中的窗口计算
EN

Stack Overflow用户
提问于 2017-02-20 12:21:25
回答 1查看 992关注 0票数 1

我正在C#中实现一个DICOM-图像查看器。我不使用任何为我做图像处理的框架或库(因为我不被允许)。

我可以用哪种算法计算加窗量?(有窗口中心和窗口宽度)

我有以下工作要做:

  • 像素数据存储为byte[]。
  • 像素存储在Hounsfield单元中(见第一段代码)

我尝试了以下几点:

计算撤销:(编辑)

代码语言:javascript
复制
var intArray = new int[PixelData.Length];
for (int i = 0; i < this.PixelData.Length; i++)
{
  intArray[i] = rescaleSlope*this.PixelData[i] + rescaleIntercept;
}

计算加窗

代码语言:javascript
复制
var lowestVisibleValue = (windowCenter - 0.5 - ((windowWidth - 1) / 2));
var highestVisibleValue = (windowCenter - 0.5 + ((windowWidth - 1) / 2));

for (int i = 0; i < this.PixelData.Length; i++)
{
  if (intArray[i] <=  lowestVisibleValue)
  {
    PixelData[i] = 0;
  }
  else if (intArray[i] > highestVisibleValue)
  {
    PixelData[i] = 255;
  }
  else
  {
    PixelData[i] =(byte)((PixelData[i] - (windowCenter - 0.5))/((windowWidth -1) + 0.5)*(highestVisibleValue - lowestVisibleValue) + lowestVisibleValue);
  }
}

第二个代码几乎一直返回0,所以图像几乎是黑色的。知道我做错什么了吗?

编辑21.02.2017

我按照保罗·布兰科的建议编辑了代码。我把胡藏在int[]里。

当窗口中心为40,窗口宽度为350时,所有东西都是黑色的。

所以还是出了点问题。有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-20 13:21:19

我认为这个问题是由于斜率/截距的结果被截断成一个字节,而值的更高部分丢失了。

Housfield值不适合于一个字节。此外,可以对Hounsfield值进行签名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42344481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档