2017-04-10 49 views
0

我正在将一些旧版代码转换为ITK 4.7以进行dicom操作。我正在阅读私人图片标签,但以少量私人标签获得Base64编码格式的结果。ITK 4.7 baseic解码Dicom

我想知道我得到了一个标签作为

MlwtNVwyNSA= 

基本上它的编码值

2\-5\25(in base64)

价值我知道有Base64.h随gdcm库,但问题是ITK的头/函数的一部分,或者我需要创建gdcm对象来转换编码值?或者为自己的转换编写我自己的C++函数? ITK 4.7库中最有效(如果不是原生的)方法是什么?

回答

1

通过查看源代码(gdcmBase64.h和.cxx),gdcm :: Base64是一个独立的类,它独立于GDCM的其余部分。只需#include "gdcmBase64.h",并根据需要调用编码和解码。

或者,您可以找到base64编码和解码的实现,并将它们放在源文件中。 base64编码非常简单。

+0

看起来这是唯一可行的选择,我认为,因为我使用itk :: GDCMImageIO *对象,我可以直接调用编码/解码。无论如何感谢您的建议。我想知道为什么GDCMImageIO对象不包含所有内容。 – Naumann

+0

可能是因为标记值可能包含NULL,如果您将标记值视为以空字符结尾的字符串,则这可能会产生问题。 –