我正在处理3D DICOM文件。在读取之后(例如,使用MATLAB),我看到它包含除实际扫描图像之外的一些文本信息。我的意思是当我执行implay()时在图像中可见的文本,而不是DICOM文件中的标题文本。有没有办法只加载没有文本的原始数据?该文本阻碍了我的处理。
编辑:我不能分享我正在处理的图像,因为它是专有的,但我在谷歌搜索后发现了以下图像:注意左侧的文字是如何与图像重叠的?在我正在处理的图像中有类似的效果。我只需要锥形扫描图像进行处理。
答案 0 :(得分:2)
如上所述,您需要提供更多信息,因为可以通过多种方式添加叠加层:如果它被刻录到图像中,您通常会运气不好;如果它位于覆盖平面模块(60xx标签组)中,您可以在传入Matlab之前删除它们;如果它存储在未使用的高位(旧的常见方法)中,则必须使用覆盖位位置(60xx,0102)来清除像素数据中的数据。
对于最后一个,类似于这个Java代码的Matlab等效:
int position = object.getInt( Tag.OverlayBitPosition, 0 );
if( position == 0 ) return;
// Remove the overlay data in high-bit specified.
//
int bit = 1 << position;
int[] pixels = object.getInts( Tag.PixelData );
int count = 0;
for( int pix : pixels )
{
int overlay = pix & bit;
pixels[ count++ ] = pix - overlay;
}
object.putInts( Tag.PixelData, VR.OW, pixels );
答案 1 :(得分:0)
如果您参考图像顶部蓝色区域中的文字,这些内容会被刻录到图像中。
删除它的唯一解决方法是将遮罩应用于图像的这个区域。
小心,因为这样做是对原始DICOM图像的修改。在某些情况下不允许进行此类修改。