[英]How to get the value with VR=FL, VM=2 in Evil DICOM
我嘗試使用以下命令獲取Tag值: var vSAD = sel.VirtualSourceAxisDistance.Data;
我也試過var vSAD = dcm.FindAll("300A030A");
它只返回一個數字(假設有2個)。
然后我嘗試讀取元素並保存到另一個dicom文件,找到VR=FL
, VM=2
情況下只有一個數字顯示在新文件中。 如何解決此問題以獲得2個數字? 這是否意味着當我使用var dcm = DICOMFileReader.Read(openFileDialog1.FileName);
它只返回一個號碼?
我在FloatingPiontSingle.cs文件中看到:
public class FloatingPointSingle : AbstractElement<float?>
{
public FloatingPointSingle() { }
public FloatingPointSingle(Tag tag, float? data)
{
Tag = tag;
Data = data;
VR = Enums.VR.FloatingPointSingle;
}
}
我沒有意識到FL VM可能不止一個。 我只是看了DICOM規范,並意識到它是可能的。 這實際上很容易解決。 您是否可以發布包含此類值的示例(匿名)DICOM文件的鏈接,我將修補核心框架。
僅供參考:要修補自己,您需要將FloatingPointSingle
更改為:
public class FloatingPointSingle : AbstractElement<float[]>
{
public FloatingPointSingle() { }
public FloatingPointSingle(Tag tag, float[] data)
{
Tag = tag;
Data = data;
VR = Enums.VR.FloatingPointSingle;
}
}
然后在LittleEndianReader.ReadSinglePrecision()
和BigEndianReader.ReadSinglePrecision()
方法中,您需要更改邏輯以允許連接的浮點數(無分隔符)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.