【发布时间】:2022-01-21 22:35:16
【问题描述】:
我正在自己制作一个 dicom 查看器。
修改dicom图片颜色成功,但是是纯色。
所以,为了解决单色部分,我带来了 dicom 调色板。 https://dicom.nema.org/dicom/2013/output/chtml/part06/chapter_B.html
但它以一种奇怪的方式进行,而不是我想象的方式。
经过深思熟虑,我发现位图的属性中有一个调色板。 但它根本不起作用。 搜索结果,很多答案可能都不行,建议直接触摸像素数据。 而且我调色板的长度总是为零。
Oncolor Red 版本
dicom HeartIronSetVersion
最终目标
for (int i = 0; i < bitmap2.Width; i++)
{
for (int j = 0; j < bitmap2.Height; j++)
{
actualColor = bitmap2.GetPixel(i, j);
int a = actualColor.A;
int r = actualColor.R;
Color col = palette[r];
//IronHeartsetWith Alpha
//redBitmap.SetPixel(i, j, Color.FromArgb(a, palette[r]));
//IronHeartSet
//redBitmap.SetPixel(i, j, col);
//RedVer
redBitmap.SetPixel(i, j, Color.FromArgb(a, r, 0, 0));
//redBitmap.SetPixel(i, j, Color.FromArgb((int)r, 1, 0, 0));
}
}
【问题讨论】:
-
从骨架图像看来他们正在使用
L value(照明),也许您可以尝试使用L = 0.299 * R + 0.587 * G + 0.114 * B将rgb转换为灰色,然后应用映射? -
实际目标是什么?使用位图类中的内置调色板?将现有调色板应用于彩色图像?首先创建调色板?
-
@JonasH 我已经做了调色板。更改此图像的颜色后,我将融合此图像。我不知道如何使用这个调色板来表达我在想的画面。
标签: c# image image-processing color-palette medical-imaging