C#实现扣取不同尺寸dicom图像
作者:野牛程序员:2023-12-25 12:06:30C#阅读 2888
可以使用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

