我正在尝试编写一个简单的DICOM阅读器。我有两个函数mydicominfo和mydicomread,其中mydicominfo读取标签并存储数据,mydicomread读取图像。
在mydicomread中我想重新调整值(图像来自CT扫描仪),似乎我必须使用关系OutputValue = SV * RescaleSlope + RescaleIntercept,但是我为RescaleIntercept获取了3个值的向量,我不知道怎么办呢?
以下是mydicominfo的代码示例,我将信息存储在结构中。
t(16).name = 'RescaleIntercept'; t(16).groupnumber = '0028'; t(16).elementnumber = '1052'; t(16).type = 'uint16'; t(16).default = 0;
t(17).name = 'RescaleSlope'; t(17).groupnumber = '0028'; t(17).elementnumber = '1053'; t(17).type = 'uint16'; t(17).default = 0;
t(18).name = 'MinPixelValue'; t(18).groupnumber = '0028'; t(18).elementnumber = '0106'; t(18).type = 'uint16'; t(18).default = 0;
t(19).name = 'MaxPixelValue'; t(19).groupnumber = '0028'; t(19).elementnumber = '0107'; t(19).type = 'uint16'; t(19).default = 0;
t(20).name = 'RescaleType'; t(20).groupnumber = '0028'; t(20).elementnumber = '1054'; t(20).type = 'uint16'; t(2).default = 0;
我为附加的DICOM图像获得的输出片段是:
RescaleIntercept: [12589 12848 8244]
RescaleSlope: 8241
MinPixelValue: 0
MaxPixelValue: 0