]> Creatis software - gdcm.git/commitdiff
ENH: apply dos2unix
authormalaterre <malaterre>
Mon, 28 Jan 2008 12:47:07 +0000 (12:47 +0000)
committermalaterre <malaterre>
Mon, 28 Jan 2008 12:47:07 +0000 (12:47 +0000)
vtk/Bmp2Dcm.cxx

index 78d1e206db0e5cc523660a447470d7226a086d17..95cc9820a1932924093ed5503713b22bade92829 100755 (executable)
-/*=========================================================================\r
-                                                                                \r
-  Program:   gdcm\r
-  Module:    $RCSfile: Bmp2Dcm.cxx,v $\r
-  Language:  C++\r
-  Date:      $Date: 2007/10/30 16:42:58 $\r
-  Version:   $Revision: 1.3 $\r
-                                                                                \r
-  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de\r
-  l'Image). All rights reserved. See Doc/License.txt or\r
-  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.\r
-                                                                                \r
-     This software is distributed WITHOUT ANY WARRANTY; without even\r
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\r
-     PURPOSE.  See the above copyright notices for more information.\r
-                                                                                \r
-=========================================================================*/\r
-\r
-#include "gdcmArgMgr.h"\r
-#include "gdcmDirList.h"\r
-#include "gdcmDebug.h"\r
-#include "gdcmUtil.h"\r
-\r
-#include <vtkImageData.h>\r
-\r
-#include <vtkBMPReader.h>\r
-#include <vtkBMPWriter.h>\r
-#include "vtkGdcmWriter.h"\r
-\r
-#include <vtkImageExtractComponents.h>\r
-#include <vtkPointData.h>\r
-#include <vtkDataArray.h>\r
-\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include <stdlib.h>\r
-#include <math.h>\r
-\r
-//---------------------------------------------------------------------------\r
-\r
-int main( int argc, char *argv[] )\r
-{\r
-   START_USAGE(usage)\r
-   "\n Bmp2Dcm :\n                                                            ",  \r
-   "usage: Bmp2Dcm {filein=inputFileName|dirin=inputDirectoryName}            ",\r
-   "              [studyUID = ] [patName = ] [debug]                          ", \r
-   "                                                                          ",\r
-   " inputFileName : Name of the (single) file user wants to transform        ",\r
-   " inputDirectoryName : user wants to transform *all* the files             ",\r
-   " studyUID   : *aware* user wants to add the serie                         ",\r
-   "                                             to an already existing study ", \r
-   " verbose    : user wants to run the program in 'verbose mode'             ",       \r
-   " debug      : *developper* wants to run the program in 'debug mode'       ",\r
-   \r
-   FINISH_USAGE\r
-\r
-   // ----- Initialize Arguments Manager ------\r
-  \r
-   GDCM_NAME_SPACE::ArgMgr *am = new GDCM_NAME_SPACE::ArgMgr(argc, argv);\r
-  \r
-   if (am->ArgMgrDefined("usage") || argc == 1) \r
-   {\r
-      am->ArgMgrUsage(usage); // Display 'usage'\r
-      delete am;\r
-      return 0;\r
-   }\r
-\r
-   if (am->ArgMgrDefined("debug"))\r
-      GDCM_NAME_SPACE::Debug::DebugOn();\r
-\r
-   bool verbose = ( 0 != am->ArgMgrDefined("verbose") );\r
-\r
-   const char *fileName = am->ArgMgrGetString("filein");\r
-   const char *dirName  = am->ArgMgrGetString("dirin");\r
-\r
-   if ( (fileName == 0 && dirName == 0)\r
-        ||\r
-        (fileName != 0 && dirName != 0) )\r
-   {\r
-       std::cout <<std::endl\r
-                 << "Either 'filein=' or 'dirin=' must be present;"\r
-                 << std::endl << "Not both" << std::endl;\r
-       am->ArgMgrUsage(usage); // Display 'usage'\r
-       delete am;\r
-       return 0;\r
- }\r
-\r
-   std::string patName  = am->ArgMgrGetString("patname", dirName);\r
-   bool userDefinedStudy = ( 0 != am->ArgMgrDefined("studyUID") );\r
-   const char *studyUID;\r
-   if (userDefinedStudy)\r
-      studyUID  = am->ArgMgrGetString("studyUID");\r
-\r
-   // not described *on purpose* in the Usage !\r
-   bool userDefinedSerie = ( 0 != am->ArgMgrDefined("serieUID") );\r
-   const char *serieUID;\r
-   if(userDefinedSerie)\r
-      serieUID = am->ArgMgrGetString("serieUID");\r
-\r
-    /* if unused Param we give up */\r
-   if ( am->ArgMgrPrintUnusedLabels() )\r
-   {\r
-      am->ArgMgrUsage(usage);\r
-      delete am;\r
-      return 0;\r
-   }\r
-\r
-   delete am;  // ------ we don't need Arguments Manager any longer ------\r
-\r
-\r
-   // ----- Begin Processing -----\r
-\r
-   int *dim;\r
-   std::string nomFich;\r
-\r
-   if ( fileName != 0 ) // ====== Deal with a single file ======\r
-   {\r
-     vtkBMPReader* Reader = vtkBMPReader::New();\r
-     if ( Reader->CanReadFile(fileName ) == 0) {\r
-         // skip 'non BMP' files\r
-        Reader->Delete();\r
-        if (verbose)\r
-            std::cout << "Sorry, [" << fileName << "] is not a BMP file!" << std::endl;\r
-        return 0;\r
-    }\r
-\r
-    if (verbose)\r
-       std::cout << "deal with [" <<  fileName << "]" << std::endl;\r
-     //Read BMP file\r
-\r
-     Reader->SetFileName(fileName);\r
-     Reader->Update();\r
-\r
-     vtkImageExtractComponents* Red = vtkImageExtractComponents::New();\r
-     Red->SetInput(Reader->GetOutput());\r
-     Red->SetComponents(0);\r
-     Red->Update();\r
-\r
-     vtkGdcmWriter* Writer = vtkGdcmWriter::New();\r
-     Writer->SetInput(Red->GetOutput());\r
-     nomFich = "";\r
-     nomFich = nomFich+fileName+".acr";   \r
-     Writer->Write();\r
-   \r
-     Reader->Delete();\r
-     Red->Delete();\r
-     Writer->Delete();\r
-   \r
-     }\r
-     else  // ====== Deal with a (single Patient) Directory ======\r
-     { \r
-     \r
-        if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(dirName) )\r
-        {\r
-          std::cout << "KO : [" << dirName << "] is not a Directory." << std::endl;\r
-          return 0;\r
-        }\r
-        else\r
-        {\r
-          if (verbose)\r
-            std::cout << "OK : [" << dirName << "] is a Directory." << std::endl;\r
-        } \r
-        std::string strStudyUID;\r
-        std::string strSerieUID;\r
-\r
-        if (userDefinedStudy)\r
-           strSerieUID =  studyUID;\r
-        else\r
-           strStudyUID =  GDCM_NAME_SPACE::Util::CreateUniqueUID();\r
-   \r
-        if (userDefinedStudy)\r
-          strSerieUID =  serieUID;\r
-        else\r
-           strStudyUID =  GDCM_NAME_SPACE::Util::CreateUniqueUID();    \r
-\r
-       if(verbose)\r
-           std::cout << "dirName [" << dirName << "]" << std::endl;\r
-       \r
-        GDCM_NAME_SPACE::DirList dirList(dirName,1); // gets recursively the file list\r
-        GDCM_NAME_SPACE::DirListType fileList = dirList.GetFilenames();\r
-\r
-        for( GDCM_NAME_SPACE::DirListType::iterator it  = fileList.begin();\r
-                                   it != fileList.end();\r
-                                   ++it )\r
-        {\r
-           if ( GDCM_NAME_SPACE::Util::GetName((*it)).c_str()[0] == '.' ) \r
-           {\r
-              // skip hidden files\r
-              continue;\r
-           }\r
-      \r
-           vtkBMPReader* Reader = vtkBMPReader::New();\r
-  \r
-           if ( Reader->CanReadFile(it->c_str() ) == 0) {\r
-              // skip 'non BMP' files  \r
-               Reader->Delete();\r
-               continue;\r
-            }\r
-   \r
-           if (verbose)\r
-             std::cout << "deal with [" <<  it->c_str() << "]" << std::endl;  \r
-   \r
-           Reader->SetFileName(it->c_str());    \r
-           Reader->Update();\r
-   \r
-           dim=Reader->GetOutput()->GetDimensions();\r
-           vtkImageExtractComponents* Red = vtkImageExtractComponents::New();\r
-           Red->SetInput(Reader->GetOutput());\r
-           Red->SetComponents(0);\r
-           Red->Update();\r
-\r
-           // At least, created files will look like a Serie from a single Study ...  \r
-           GDCM_NAME_SPACE::File *f = GDCM_NAME_SPACE::File::New();\r
-           f->InsertEntryString(strStudyUID, 0x0020, 0x000d, "UI");      \r
-           f->InsertEntryString(strSerieUID, 0x0020, 0x000e, "UI");\r
-           f->InsertEntryString(patName,     0x0010, 0x0010, "PN");   // Patient's Name \r
-\r
-           vtkGdcmWriter* Writer = vtkGdcmWriter::New();\r
-           Writer->SetInput(Red->GetOutput());\r
-           nomFich = "";\r
-           nomFich = nomFich+it->c_str()+".acr";\r
-           Writer->SetFileName(nomFich.c_str());\r
-           Writer->SetGdcmFile(f);\r
-           Writer->Write();\r
-   \r
-           f->Delete(); \r
-        \r
-      }\r
-   }   \r
-   return 0;   \r
-}\r
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: Bmp2Dcm.cxx,v $
+  Language:  C++
+  Date:      $Date: 2008/01/28 12:47:07 $
+  Version:   $Revision: 1.4 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
+                                                                                
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+                                                                                
+=========================================================================*/
+
+#include "gdcmArgMgr.h"
+#include "gdcmDirList.h"
+#include "gdcmDebug.h"
+#include "gdcmUtil.h"
+
+#include <vtkImageData.h>
+
+#include <vtkBMPReader.h>
+#include <vtkBMPWriter.h>
+#include "vtkGdcmWriter.h"
+
+#include <vtkImageExtractComponents.h>
+#include <vtkPointData.h>
+#include <vtkDataArray.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+
+//---------------------------------------------------------------------------
+
+int main( int argc, char *argv[] )
+{
+   START_USAGE(usage)
+   "\n Bmp2Dcm :\n                                                            ",  
+   "usage: Bmp2Dcm {filein=inputFileName|dirin=inputDirectoryName}            ",
+   "              [studyUID = ] [patName = ] [debug]                          ", 
+   "                                                                          ",
+   " inputFileName : Name of the (single) file user wants to transform        ",
+   " inputDirectoryName : user wants to transform *all* the files             ",
+   " studyUID   : *aware* user wants to add the serie                         ",
+   "                                             to an already existing study ", 
+   " verbose    : user wants to run the program in 'verbose mode'             ",       
+   " debug      : *developper* wants to run the program in 'debug mode'       ",
+   
+   FINISH_USAGE
+
+   // ----- Initialize Arguments Manager ------
+  
+   GDCM_NAME_SPACE::ArgMgr *am = new GDCM_NAME_SPACE::ArgMgr(argc, argv);
+  
+   if (am->ArgMgrDefined("usage") || argc == 1) 
+   {
+      am->ArgMgrUsage(usage); // Display 'usage'
+      delete am;
+      return 0;
+   }
+
+   if (am->ArgMgrDefined("debug"))
+      GDCM_NAME_SPACE::Debug::DebugOn();
+
+   bool verbose = ( 0 != am->ArgMgrDefined("verbose") );
+
+   const char *fileName = am->ArgMgrGetString("filein");
+   const char *dirName  = am->ArgMgrGetString("dirin");
+
+   if ( (fileName == 0 && dirName == 0)
+        ||
+        (fileName != 0 && dirName != 0) )
+   {
+       std::cout <<std::endl
+                 << "Either 'filein=' or 'dirin=' must be present;"
+                 << std::endl << "Not both" << std::endl;
+       am->ArgMgrUsage(usage); // Display 'usage'
+       delete am;
+       return 0;
+ }
+
+   std::string patName  = am->ArgMgrGetString("patname", dirName);
+   bool userDefinedStudy = ( 0 != am->ArgMgrDefined("studyUID") );
+   const char *studyUID;
+   if (userDefinedStudy)
+      studyUID  = am->ArgMgrGetString("studyUID");
+
+   // not described *on purpose* in the Usage !
+   bool userDefinedSerie = ( 0 != am->ArgMgrDefined("serieUID") );
+   const char *serieUID;
+   if(userDefinedSerie)
+      serieUID = am->ArgMgrGetString("serieUID");
+
+    /* if unused Param we give up */
+   if ( am->ArgMgrPrintUnusedLabels() )
+   {
+      am->ArgMgrUsage(usage);
+      delete am;
+      return 0;
+   }
+
+   delete am;  // ------ we don't need Arguments Manager any longer ------
+
+
+   // ----- Begin Processing -----
+
+   int *dim;
+   std::string nomFich;
+
+   if ( fileName != 0 ) // ====== Deal with a single file ======
+   {
+     vtkBMPReader* Reader = vtkBMPReader::New();
+     if ( Reader->CanReadFile(fileName ) == 0) {
+         // skip 'non BMP' files
+        Reader->Delete();
+        if (verbose)
+            std::cout << "Sorry, [" << fileName << "] is not a BMP file!" << std::endl;
+        return 0;
+    }
+
+    if (verbose)
+       std::cout << "deal with [" <<  fileName << "]" << std::endl;
+     //Read BMP file
+
+     Reader->SetFileName(fileName);
+     Reader->Update();
+
+     vtkImageExtractComponents* Red = vtkImageExtractComponents::New();
+     Red->SetInput(Reader->GetOutput());
+     Red->SetComponents(0);
+     Red->Update();
+
+     vtkGdcmWriter* Writer = vtkGdcmWriter::New();
+     Writer->SetInput(Red->GetOutput());
+     nomFich = "";
+     nomFich = nomFich+fileName+".acr";   
+     Writer->Write();
+   
+     Reader->Delete();
+     Red->Delete();
+     Writer->Delete();
+   
+     }
+     else  // ====== Deal with a (single Patient) Directory ======
+     { 
+     
+        if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(dirName) )
+        {
+          std::cout << "KO : [" << dirName << "] is not a Directory." << std::endl;
+          return 0;
+        }
+        else
+        {
+          if (verbose)
+            std::cout << "OK : [" << dirName << "] is a Directory." << std::endl;
+        } 
+        std::string strStudyUID;
+        std::string strSerieUID;
+
+        if (userDefinedStudy)
+           strSerieUID =  studyUID;
+        else
+           strStudyUID =  GDCM_NAME_SPACE::Util::CreateUniqueUID();
+   
+        if (userDefinedStudy)
+          strSerieUID =  serieUID;
+        else
+           strStudyUID =  GDCM_NAME_SPACE::Util::CreateUniqueUID();    
+
+       if(verbose)
+           std::cout << "dirName [" << dirName << "]" << std::endl;
+       
+        GDCM_NAME_SPACE::DirList dirList(dirName,1); // gets recursively the file list
+        GDCM_NAME_SPACE::DirListType fileList = dirList.GetFilenames();
+
+        for( GDCM_NAME_SPACE::DirListType::iterator it  = fileList.begin();
+                                   it != fileList.end();
+                                   ++it )
+        {
+           if ( GDCM_NAME_SPACE::Util::GetName((*it)).c_str()[0] == '.' ) 
+           {
+              // skip hidden files
+              continue;
+           }
+      
+           vtkBMPReader* Reader = vtkBMPReader::New();
+  
+           if ( Reader->CanReadFile(it->c_str() ) == 0) {
+              // skip 'non BMP' files  
+               Reader->Delete();
+               continue;
+            }
+   
+           if (verbose)
+             std::cout << "deal with [" <<  it->c_str() << "]" << std::endl;  
+   
+           Reader->SetFileName(it->c_str());    
+           Reader->Update();
+   
+           dim=Reader->GetOutput()->GetDimensions();
+           vtkImageExtractComponents* Red = vtkImageExtractComponents::New();
+           Red->SetInput(Reader->GetOutput());
+           Red->SetComponents(0);
+           Red->Update();
+
+           // At least, created files will look like a Serie from a single Study ...  
+           GDCM_NAME_SPACE::File *f = GDCM_NAME_SPACE::File::New();
+           f->InsertEntryString(strStudyUID, 0x0020, 0x000d, "UI");      
+           f->InsertEntryString(strSerieUID, 0x0020, 0x000e, "UI");
+           f->InsertEntryString(patName,     0x0010, 0x0010, "PN");   // Patient's Name 
+
+           vtkGdcmWriter* Writer = vtkGdcmWriter::New();
+           Writer->SetInput(Red->GetOutput());
+           nomFich = "";
+           nomFich = nomFich+it->c_str()+".acr";
+           Writer->SetFileName(nomFich.c_str());
+           Writer->SetGdcmFile(f);
+           Writer->Write();
+   
+           f->Delete(); 
+        
+      }
+   }   
+   return 0;   
+}