Я пытаюсь реализовать формулу ширины и уровня окна из спецификации de Dicom в моем приложении. Только в настоящее время он не возвращает оттенки серого. Диком определяет формулу следующим образом:
Эти атрибуты применяются в соответствии со следующим псевдокодом, где x - входное значение, y
является выходным значением в диапазоне от ymin до ymax, c - центр окна (0028,1050), а w -
Ширина окна (0028,1051):
if (x <= c - 0.5 - (w-1)/2), then y = ymin
else if (x > c - 0.5 + (w-1)/2), then y = ymax,
else y = ((x - (c - 0.5)) / (w-1) + 0.5) * (ymax - ymin)+ ymin
Итак, я перевел это в следующий синтаксис c #:
if (pixelData[i] <= wLevel - 0.5 - (wWidth - 1) / 2)
oColor = 0;
else if (pixelData[i] > wLevel - 0.5 + (wWidth - 1) / 2)
oColor = 255;
else
oColor = (int)((pixelData[i] - (wLevel - 0.5)) / (wWidth - 1) + 0.5) * (255 - 0) + 0;
Howevery, последняя часть формулы
oColor = (int)((pixelData[i] - (wLevel - 0.5)) / (wWidth - 1) + 0.5) * (255 - 0) + 0;
Только кажется, что возвращает 0
Кто-нибудь видит, как это возможно?