我有一组 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();
}