医学软件项目开发(一):使用ITK对DICOM文件进行相关操作

本文档介绍了在医学软件项目开发中,如何利用ITK库对DICOM文件进行处理,包括理解CT值的Hounsfield单位,处理不同位数的像素值,以及在ITK中调整窗宽窗位的方法。同时提到了在项目中遇到的问题,如writer操作异常,并分享了使用cv::Mat保存图像到raw文件并用Excel查看的技巧,以及通过Image Watch插件进行图像观察的优化方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、预定义

CT值的单位是Hounsfield,简称为Hu,范围是 -1024-3071。用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu。

在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这个范围,通常是0-4096,这个值就是我们常见到的像素值或者灰度值。一般我们所处理的图象是经过量化后的灰度图象,标准的CT 灰度图象为12 位灰度图象。

8bite,16bites,32bites,64bites 对应每个像素值变量类型为char、short、int、long

opencv

using InputPixelType = unsigned char;//无符号八位,一般取signed short,unsigned short得到的是2^16大小的数据-1024,而使用signed short得到的数据才为正常
using OutputPixelType = unsigned char;
using InputImageType = itk::Image<InputPixelType, 2>;//二维
using OutputImageType = itk::Image<OutputPixelType, 2>;
typedef itk::ImageSeriesReader<InputImageType> ReaderType;//ImageFileReader也可
typedef itk::GDCMImageIO ImageIOType;
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileNames(filenamesOut);
//reader->SetFileName(argv[1]);//调试中的命令参数名字
ImageIOType::Pointer gdcmIO = ImageIOType::New();
reader->SetImageIO(gdcmIO);
reader->Update();
Mat S_OrgImg = itk::OpenCVImageBridge::ITKImageToCVMat< OutputImageType >(reader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值