X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Example%2FPrintFile.cxx;h=f1868e72b3c550ae0e176673b980a1abd263f5d9;hb=fa8fa610de8d935491343df2d8a543ff6fdb6e69;hp=156c7add619b56064bacbe15a56451b9e3ae1165;hpb=680fe76f509ecddfa245ede193c2a5f1945afec8;p=gdcm.git diff --git a/Example/PrintFile.cxx b/Example/PrintFile.cxx index 156c7add..f1868e72 100644 --- a/Example/PrintFile.cxx +++ b/Example/PrintFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: PrintFile.cxx,v $ Language: C++ - Date: $Date: 2005/09/06 11:10:03 $ - Version: $Revision: 1.55 $ + Date: $Date: 2005/10/01 19:39:14 $ + Version: $Revision: 1.61 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -27,7 +27,7 @@ #include "gdcmGlobal.h" #include "gdcmDictSet.h" #include "gdcmArgMgr.h" - +#include "gdcmOrientation.h" #include @@ -207,7 +207,7 @@ int main(int argc, char *argv[]) // ----------- End Arguments Manager --------- - + if (ddict) { gdcm::Global::GetDicts()->GetDefaultPubDict()->AddDict(dict); @@ -292,12 +292,63 @@ int main(int argc, char *argv[]) std::cout << " TransferSyntaxName= [" << transferSyntaxName << "]" << std::endl; std::cout << " SwapCode= " << f->GetSwapCode() << std::endl; - + std::cout << " ------" << std::endl; //std::cout << "\n\n" << std::endl; //std::cout << "X spacing " << f->GetXSpacing() << std::endl; //std::cout << "Y spacing " << f->GetYSpacing() << std::endl; //std::cout << "Z spacing " << f->GetZSpacing() << std::endl; + // Lets's get and print some usefull fields about 'Orientation' + // ------------------------------------------------------------ + + std::string strPatientPosition = + f->GetEntryValue(0x0018,0x5100); + if ( strPatientPosition != gdcm::GDCM_UNFOUND + && strPatientPosition != "" ) + std::cout << "PatientPosition (0x0010,0x5100)= [" + << strPatientPosition << "]" << std::endl; + + std::string strPatientOrientation = + f->GetEntryValue(0x0020,0x0020); + if ( strPatientOrientation != gdcm::GDCM_UNFOUND + && strPatientOrientation != "") + std::cout << "PatientOrientation (0x0020,0x0020)= [" + << strPatientOrientation << "]" << std::endl; + + std::string strImageOrientationPatient = + f->GetEntryValue(0x0020,0x0037); + if ( strImageOrientationPatient != gdcm::GDCM_UNFOUND + && strImageOrientationPatient != "" ) + std::cout << "ImageOrientationPatient (0x0020,0x0037)= [" + << strImageOrientationPatient << "]" << std::endl; + + std::string strImageOrientationRET = + f->GetEntryValue(0x0020,0x0035); + if ( strImageOrientationRET != gdcm::GDCM_UNFOUND + && strImageOrientationRET != "" ) + std::cout << "ImageOrientationRET (0x0020,0x0035)= [" + << strImageOrientationRET << "]" << std::endl; + + // Let's compute 'user friendly' results about 'Orientation' + // --------------------------------------------------------- + + gdcm::Orientation o; + + if ( strImageOrientationPatient != gdcm::GDCM_UNFOUND || + strImageOrientationRET != gdcm::GDCM_UNFOUND ) + { + + gdcm::OrientationType orient = o.GetOrientationType( f ); + + std::cout << "TypeOrientation = " << orient << " (-> " + << o.GetOrientationTypeString(orient) << " )" << std::endl; + } + + std::string ori = o.GetOrientation ( f ); + if (ori != "\\" ) + std::cout << "Orientation [" << ori << "]" << std::endl; + + // Display the LUT as an int array (for debugging purpose) if ( f->HasLUT() && showlut ) { @@ -319,7 +370,7 @@ int main(int argc, char *argv[]) int length; // LUT length in Bytes int deb; // Subscript of the first Lut Value int nbits; // Lut item size (in Bits) - int nbRead; // nb of items in LUT descriptor (must be = 3) + int nbRead; // nb of items in LUT descriptor (must be = 3) nbRead = sscanf( lutDescriptor.c_str(), "%d\\%d\\%d", @@ -372,7 +423,9 @@ int main(int argc, char *argv[]) ShowLutData(f); } - if( !f->gdcm::Document::IsReadable()) + //if( !f->gdcm::Document::IsReadable()) + // Try downcast to please MSVC + if ( !((gdcm::Document *)f)->IsReadable() ) { std::cout <SetPrintLevel( level ); fh->Print(); + gdcm::Orientation o; + std::string ori = o.GetOrientation ( f ); + if (ori != gdcm::GDCM_UNFOUND ) + std::cout << "- Orientation [" << ori << "]" << std::endl; + gdcm::OrientationType d = o.GetOrientationType( f ); + + std::cout << "TypeOrientation = " << d << " (-> " + << o.GetOrientationTypeString(d) << std::endl; + if (f->IsReadable()) std::cout <c_str()<<" is Readable"<