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