【发布时间】:2014-08-26 04:48:28
【问题描述】:
我有一组 JPG 图像,它们实际上是 CT 扫描的切片,我想将其重建为 DICOM 图像文件并导入 PACS。
我正在使用 ClearCanvas,并设置了所有必要的标签(并通过使用专有应用程序将我的一个 JPG 文件转换为 DICOM 来确认它们,以确保它们相同)。我只是不确定应该如何处理我的 JPG 文件以将其放入 PixelData 标记中?
目前我正在根据 ClearCanvas 论坛的建议将其转换为字节数组,但图像在 DICOM 查看器中只是乱码。我应该如何处理图像数据以使其成为可读格式?
public DicomFile CreateFileFromImage(Image image)
{
int height = image.Height;
int width = image.Width;
short bitsPerPixel = (short)Image.GetPixelFormatSize(image.PixelFormat);
byte[] imageBuffer = ImageToByteArray(image);
DicomFile dicomFile = new DicomFile();
dicomFile.DataSet[DicomTags.Columns].SetInt32(0, width);
dicomFile.DataSet[DicomTags.Rows].SetInt32(0, height);
dicomFile.DataSet[DicomTags.BitsStored].SetInt16(0, bitsPerPixel);
dicomFile.DataSet[DicomTags.BitsAllocated].SetInt16(0, bitsPerPixel);
dicomFile.DataSet[DicomTags.HighBit].SetInt16(0, 7);
//other tags not shown
dicomFile.DataSet[DicomTags.PixelData].Values = imageBuffer;
return dicomFile;
}
public static byte[] ImageToByteArray(Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
【问题讨论】:
-
您是否设置了更多的 DicomTags 来识别像素数据?您还应该设置以下标签:PhotometricInterpretation = "RGB", SamplesPerPixel = 3, PlanarConfiguration = 0
标签: c# dicom clearcanvas