当前位置:首页C# > 正文

C#实现扣取不同尺寸dicom图像

作者:野牛程序员:2023-12-25 12:06:30C#阅读 2617

可以使用C#中的DICOM库来实现扣取不同尺寸的DICOM图像。下面是一个简单的示例代码,使用fo-dicom库:

using Dicom;
using Dicom.Imaging;
using Dicom.Imaging.LUT;
using Dicom.Imaging.Render;
using Dicom.IO;

class Program
{
    static void Main()
    {
        string dicomFilePath = "your_dicom_file_path.dcm";

        // 读取DICOM文件
        DicomFile dicomFile = DicomFile.Open(dicomFilePath);
        DicomDataset dataset = dicomFile.Dataset;

        // 获取图像数据
        DicomPixelData pixelData = DicomPixelData.Create(dataset);

        // 获取图像宽度和高度
        int width = dataset.GetSingleValue<int>(DicomTag.Columns, 0);
        int height = dataset.GetSingleValue<int>(DicomTag.Rows, 0);

        // 设置目标尺寸
        int targetWidth = 200; // 替换为你想要的宽度
        int targetHeight = 200; // 替换为你想要的高度

        // 缩放图像
        DicomPixelData resizedPixelData = pixelData.Resize(targetWidth, targetHeight);

        // 创建新的DICOM数据集并保存
        DicomDataset resizedDataset = new DicomDataset();
        resizedDataset.AddOrUpdate(DicomTag.Rows, targetHeight);
        resizedDataset.AddOrUpdate(DicomTag.Columns, targetWidth);
        resizedDataset.AddOrUpdate(DicomTag.PixelData, resizedPixelData);

        DicomFile resizedDicomFile = new DicomFile(resizedDataset);
        resizedDicomFile.Save("resized_dicom_file.dcm");
    }
}

请确保在使用此代码之前安装了fo-dicom库。可以通过NuGet包管理器控制台或Visual Studio中的包管理器来安装。

Install-Package fo-dicom

这个示例代码假设DICOM文件包含单幅图像。如果DICOM文件包含多个图像,可能需要在处理图像数据时进行循环。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击