2017-04-10 6 views
0

Ich konvertiere etwas älteren Code in ITK 4.7 für dicom Manipulation. Ich lese private Image-Tags, bekomme aber Ergebnisse im Base64-kodierten Format für einige private Tags.Base64-Dekodierung in ITK 4.7 für Dicom

Ich fragte mich, über den Wert ich für

2\-5\25(in base64)

Ich weiß, es ist Base64.h als

MlwtNVwyNSA= 

Grundsätzlich wird codierter Wert für einen Tag erhalten, die mit kommt gdcm library aber die Frage ist, dass header/functions Teil von ITK auch oder muss ich gdcm Objekte erstellen, um die codierten Werte zu konvertieren? oder schreibe meine eigene C++ Funktion für diese Konvertierung? Was soll der effizienteste (wenn nicht native) Weg innerhalb der ITK 4.7 Bibliothek sein?

Antwort

1

Mit Blick auf den Quellcode (gdcmBase64.h und .cxx) ist gdcm :: Base64 eine in sich geschlossene Klasse, die unabhängig vom Rest von GDCM ist. Just #include "gdcmBase64.h", und rufen Sie Encode und Decode nach Bedarf auf.

Alternativ können Sie Implementierungen von Base64-Codierung und -Decodierung finden und sie in Ihre Quelldatei einfügen. Base64-Codierung ist ziemlich einfach.

+0

Sieht aus wie das ist die einzige realisierbare Option, ich dachte, dass, da ich Itk :: GDCMImageIO * -Objekt verwende, kann ich Codierung/Decodierung direkt aufrufen. Danke für Ihren Vorschlag. Ich frage mich, warum das GDCMImageIO-Objekt nicht alles umschließt. – Naumann

+0

Wahrscheinlich, weil Tag-Werte NULL enthalten können, was problematisch sein kann, wenn Sie den Tag-Wert als nullterminierte Zeichenfolge anzeigen. –