Я пытаюсь реализовать средство просмотра dicom. Для файла dicom я могу установить ширину окна и центр окна через fo-dicom framework. Но иногда мне нужно установить параметры для растрового изображения. Я нашел, как can do it, но это не работает.Вычислить ширину окна и центр окна для растрового изображения
private Bitmap setWinWidthAndCenter(Bitmap bmp)
{
int center = (int)vsWindowCenter.Value;
int width = (int)vsWindowWidth.Value;
var wyMin = center - 0.5 - (width - 1)/2;
var wMax = center - 0.5 + (width - 1)/2;
System.Drawing.Color color;
for (int i = 0; i < bmp.Width; i++)
{
for (int j = 0; j < bmp.Height; j++)
{
color = bmp.GetPixel(i, j);
if (color.R <= wyMin)
color = System.Drawing.Color.FromArgb(0, 0, 0);
else if (color.R > wMax)
color = System.Drawing.Color.FromArgb(255, 255, 255);
else
{
var val = (int)(((color.R - (center - 0.5))/(width - 1) + 0.5) * 255);
color = System.Drawing.Color.FromArgb(val, val, val);
}
bmp.SetPixel(i, j, color);
}
}
return bmp;
}
Может быть, кто-нибудь знает, что не так.
РЕДАКТИРОВАТЬ 1:
Левое изображение ожидаемый результат, который был получен с помощью Fo-DICOM библиотеки. Правильное изображение - результат после обработки через мою функцию.
Можете ли вы быть более конкретным о том, что происходит не так? –
@WilfRosenbaum, результат ярче, чем ожидалось. Перед проектом я никогда не работал с обработкой изображений и не понимал некоторых вещей. – dremerDT
Я думаю, что ваша линия –