2

我有一个简单的 C# 控制台应用程序,它将 dicom 文件放入流中,然后将该流复制到 .jpg 文件中。我的代码创建了文件,但我无法查看图像。下面是我正在使用的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using rzdcxLib;
using System.Drawing.Imaging;

namespace ConsoleApplication1
{
    class Program
    {
       public static void CopyStream(Stream input, Stream output) { 
            byte[] buffer = new byte[8 * 1024];
            int len;
            while ((len = input.Read(buffer, 0, buffer.Length)) > 0) { 
                output.Write(buffer, 0, len); 
            } 
        } 
        static void Main(string[] args)
        {
            Stream myStream = 
             new FileStream("F:\\MIS\\JLoren\\Projects\\" + 
                             "814-Convert for Chandra\\DICOM\\Test\\IM1",
                            FileMode.Open, 
                            FileAccess.Read);
            Stream OutPut = 
             new FileStream("F:\\MIS\\JLoren\\Projects\\" +
                            "814-Convert for Chandra\\DICOM\\Test\\IM1.jpg", 
                            FileMode.Create, 
                            FileAccess.Write);
            CopyStream(myStream, OutPut);
        }
    }
}
4

1 回答 1

4

在此处查看有关 DICOM 图像格式以及如何使用 C# 读取 DICOM 图像的信息。请注意,这些图像通常是 16 位灰度,这意味着 8bpp(每通道)监视器格式无法以全色范围显示这些图像。您必须为您的特定转换选择“窗口”和“级别”的值。修复这些值可能会导致您在转换后的图像中丢失信息。请参阅:Hounsfeld 单位

此外 - DICOM 的核心原则之一是图像是无损的。在继续进行 JPG 转换之前,请确保这对于您的目的是可以接受的。PNG应该没问题。

于 2012-08-23T15:14:07.893 回答