所以我在WPF项目中工作。
我有两个DICOM图像(X射线(16位灰度)图像和光学(24位RGB)图像)。
我想要什么
我想通过改变不透明度将两个图像混合在一起。它喜欢增加或减少两个图像之间的不透明度。
如果我想混合这两个图像,我想要做的是将X射线图像降级为8位灰度。因此它在混合时将匹配24位光学图像。
我的问题
如何将16位灰度DICOM图像降级为8位深度(24位RGB)。
我尝试了什么
我尝试使用PixelFormats降级图像。
stride = width * 4;
size = height * stride;
bitmapSource = BitmapImage.Create(width, height, 96, 96, System.Windows.Media.PixelFormats.Gray8, null, bitmapBuffer, stride);
但是,如果我尝试使用上面的代码,结果图像看起来有颗粒感并且有一些损失。我该怎么做才能保持图像的质量并同时降级它。
请帮帮我。我是图像处理和DICOM域的新手。
答案 0 :(得分:2)
我认为没有很好的机会使用任何Microsoft API。您应该考虑在DICOM标题中有许多属性:
接下来的问题是:降尺度的目标是什么
在后一种情况下,以下转换适用
编辑:在澄清此功能将被合并到交互式UI中之后,我建议: 通过组合定义像素数据如何被解释的属性,将像素数据读取为“本机”格式(参见上文)。您可以从此步骤获得中间表示,其中像素数据以32/64位无符号整数格式表示为来自器件的测量值。 然后从DICOM标头中选择第一个Window / Center设置,将缩减定义为8位(参见here)。但允许用户从标题中选择其他窗口/中心设置(如果存在),并允许她手动调整它。