fo-dicom对多帧dicom图像的拆分
Dicom多帧数据存储
在Dicom标准中,关于多帧数据存储的最重要部分之一的说明是 PS3.5 Annex A.4 A.4 Transfer Syntaxes for Encapsulation of Encoded Pixel Data。 在Dicom格式中,Pixel Data存放在Pixel Data(7FE0,0010)中,直接存放(native)或者打包存放(ncapsulated)。一般的多帧序列均采用打包存放的方式,特别是在数据采用压缩格式的时候。
fo-dicom中的PixelData
DicomDataset oldDataSet = new DicomDataSet();//new with your file
var frames = oldDataSet.GetSingleValue<int>(DicomTag.NumberOfFrames);
DicomPixelData oldPixelData = DicomPixelData.Create(oldDataSet);
var buffer = oldPixelData.GetFrame(frames - 1);
DicomDataset newDataset = oldDataSet.Clone();
DicomPixelData newPixelData = DicomPixelData.Create(newDataset, true);
newPixelData.AddFrame(buffer);
上述代码通过获取Dicom图像的帧数,利用PixelData新生成了一个只拥有最后一帧图像的Dataset,完成了对多帧Dicom图像的拆分。