Program: gdcm
Module: $RCSfile: exExtractOverlaysACR.cxx,v $
Language: C++
- Date: $Date: 2007/10/19 15:06:08 $
- Version: $Revision: 1.3 $
+ Date: $Date: 2007/10/30 09:15:57 $
+ 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
START_USAGE(usage)
" \n exExtractOverlaysACR :\n ",
" Extract ACR-NEMA style overlays from an image ",
- " usage: exExtractOverlaysACR filein=inputFileName [debug] ",
+ " Resulting image name(s) are postpended with .ovly.dcm ",
+ " usage: exExtractOverlaysACR filein=inputFileName [debug] [warning] ",
+ " warning : user wants to run the program in 'warning 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 (argc == 1 || am->ArgMgrDefined("usage"))
if (am->ArgMgrDefined("debug"))
GDCM_NAME_SPACE::Debug::DebugOn();
-
+
if (am->ArgMgrDefined("warning"))
GDCM_NAME_SPACE::Debug::WarningOn();
-
+
// if unused Param we give up
if ( am->ArgMgrPrintUnusedLabels() )
{
delete am; // we don't need Argument Manager any longer
- // ========================== Now, we can do the job! ================
+ // ========================== Now, we can do the job! ================
GDCM_NAME_SPACE::File *f;
f->SetLoadMode(GDCM_NAME_SPACE::LD_NOSEQ | GDCM_NAME_SPACE::LD_NOSHADOW);
f->SetFileName( fileName );
- bool res = f->Load();
-
+ bool res = f->Load();
if (!res) {
std::cout << "Sorry, " << fileName <<" not a gdcm-readable "
}
std::cout << fileName << " is read! " << std::endl;
-
+
// ============================================================
// Load the pixels in memory.
// ============================================================
unsigned int nx = f->GetXSize();
unsigned int ny = f->GetYSize();
- unsigned int nxy=nx*ny;
+ unsigned int nxy=nx*ny;
uint16_t currentOvlGroup;
int i;
Program: gdcm
Module: $RCSfile: exExtractOverlaysDCM.cxx,v $
Language: C++
- Date: $Date: 2007/10/25 07:55:02 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2007/10/30 09:15:58 $
+ Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <iostream>
-// Each BIT of Overlay Data (0x6000,0x3000) corresponds
+// Each BIT of Overlay Data (0x60xx,0x3000) corresponds
// to a BYTE of overlay image.
-void explodeByte(unsigned char byte, unsigned char* result)
+
+void explodeByte(unsigned char byte, unsigned char* result)
{
unsigned char mask = 1;
- for (int i=0;i<8;i++)
+ for (int i=0;i<8;i++)
{
- if ((byte & mask)==0)
+ if ((byte & mask)==0)
result[i]=0;
- else
+ else
result[i]=1;
mask<<=1;
}
int main(int argc, char *argv[])
{
START_USAGE(usage)
- " \n ExtractOverlays :\n ",
+ " \n exExtractOverlaysDCM :\n ",
" Extract DICOM style overlays from an image ",
- " usage: exExtractOverlaysDCM filein=inputFileName [debug] ",
+ " Resulting image name(s) are postpended with .ovly.dcm ",
+ " usage: exExtractOverlaysDCM filein=inputFileName [debug] [warning] ",
+ " warning : user wants to run the program in 'warning 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 (argc == 1 || am->ArgMgrDefined("usage"))
if (am->ArgMgrDefined("debug"))
GDCM_NAME_SPACE::Debug::DebugOn();
-
+
if (am->ArgMgrDefined("warning"))
GDCM_NAME_SPACE::Debug::WarningOn();
-
+
// if unused Param we give up
if ( am->ArgMgrPrintUnusedLabels() )
{
delete am; // we don't need Argument Manager any longer
- // ========================== Now, we can do the job! ================
+ // ========================== Now, we can do the job! ================
GDCM_NAME_SPACE::File *f;
// ============================================================
f = GDCM_NAME_SPACE::File::New( );
-
+
f->AddForceLoadElement(0x6000,0x3000); // Overlay Data
f->AddForceLoadElement(0x6002,0x3000);
f->AddForceLoadElement(0x6004,0x3000);
unsigned int nx = f->GetXSize();
unsigned int ny = f->GetYSize();
- unsigned int nxy=nx*ny;
+ unsigned int nxy=nx*ny;
uint16_t currentOvlGroup;
int i;
GDCM_NAME_SPACE::FileHelper *fh = 0;
// ============================================================
-// Get each overlay
+// Get each overlay group into the image header
// ============================================================
for(i=0, currentOvlGroup=0x6000; i<32; i+=2 ,currentOvlGroup+=2)
{