[Insight-users] problem with orientation of dicom output from segmentation

Bill Lorensen bill.lorensen at gmail.com
Tue Dec 1 11:40:28 EST 2009


John,

I just built and ran your program with your data using the current
Insight cvs. The program ran and the resultant output and its
associated input all displayed correctly in Slicer3.

Now, I'll try again with the Slicer3 ITK and let you know what happens.

Bill


On Tue, Dec 1, 2009 at 11:16 AM, John Drozd <john.drozd at gmail.com> wrote:
> Thanks Andriy,
>
> With BUILD_TYPE set to DEBUG, gdb no longer complains about "no debug
> symbols".
>
> It just complains about:
> Missing separate debuginfos, use: debuginfo-install
> e2fsprogs-libs-1.41.4-6.fc10.x86_64 glibc-2.9-3.x86_64 libgcc-4.3.2-7.x86_64
> libstdc++-4.3.2-7.x86_64
>
> Thanks,
> john
>
> On Mon, Nov 30, 2009 at 6:46 PM, Andriy Fedorov <fedorov at bwh.harvard.edu>
> wrote:
>>
>> > I ended up using the statementy in my CMakeLists.txt file:
>> > SET (CMAKE_CXX_FLAGS_DEBUG "-DDEBUG -ggdb" CACHE STRING "Flags used by
>> > the
>> > compiler during debug builds." FORCE)
>> >
>>
>> John, I thought you should be able to configure debug flags by setting
>> BUILD_TYPE to DEBUG in ccmake interface.
>>
>>
>> > Here is the debugger output.  I will try to figure out the problem as to
>> > why
>> > my code is segmentation faulting, but I thought I would send you the gdb
>> > debugger output, in case you have some insight:
>> >
>> > thanks,
>> > john
>> >
>> > [jdrozd at trumpet ConnectedThresholdImageFilter2]$ gdb
>> > ./ConnectedThresholdImageFilter
>> >
>> > GNU gdb Fedora
>> > (6.8-32.fc10)
>> >
>> > Copyright (C) 2008 Free Software Foundation,
>> > Inc.
>> >
>> > License GPLv3+: GNU GPL version 3 or later
>> > <http://gnu.org/licenses/gpl.html>
>> >
>> > This is free software: you are free to change and redistribute
>> > it.
>> >
>> > There is NO WARRANTY, to the extent permitted by law.  Type "show
>> > copying"
>> >
>> > and "show warranty" for
>> > details.
>> >
>> > This GDB was configured as
>> > "x86_64-redhat-linux-gnu"...
>> >
>> > (no debugging symbols
>> > found)
>> >
>> > (gdb) set args correctedsubject5.dcm outsubject5.dcm 103 142 95 17100
>> > 17300
>> >
>> > (gdb)
>> > run
>> >
>> > Starting program:
>> >
>> > /trumpet/downloads/ConnectedThresholdImageFilter_Plugin/ConnectedThresholdImageFilter/ConnectedThresholdImageFilter2/ConnectedThresholdImageFilter
>> > correctedsubject5.dcm outsubject5.dcm 103 142 95 17100
>> > 17300
>> >
>> > (no debugging symbols
>> > found)
>> >
>> > (no debugging symbols found)
>> > [Thread debugging using libthread_db enabled]
>> > [New Thread 0x7ffff3b8c750 (LWP 24704)]
>> >
>> > Program received signal SIGSEGV, Segmentation fault.
>> > 0x00007ffff50efa3a in std::_Rb_tree<std::string, std::pair<std::string
>> > const, itk::SmartPointer<itk::MetaDataObjectBase> >,
>> > std::_Select1st<std::pair<std::string const,
>> > itk::SmartPointer<itk::MetaDataObjectBase> > >, std::less<std::string>,
>> > std::allocator<std::pair<std::string const,
>> > itk::SmartPointer<itk::MetaDataObjectBase> > > >::begin (this=0x0) at
>> >
>> > /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h:599
>> > 599                             (this->_M_impl._M_header._M_left));
>> > Current language:  auto; currently c++
>> > Missing separate debuginfos, use: debuginfo-install
>> > e2fsprogs-libs-1.41.4-6.fc10.x86_64 glibc-2.9-3.x86_64
>> > libgcc-4.3.2-7.x86_64
>> > libstdc++-4.3.2-7.x86_64
>> > (gdb) where
>> > #0  0x00007ffff50efa3a in std::_Rb_tree<std::string,
>> > std::pair<std::string
>> > const, itk::SmartPointer<itk::MetaDataObjectBase> >,
>> > std::_Select1st<std::pair<std::string const,
>> > itk::SmartPointer<itk::MetaDataObjectBase> > >, std::less<std::string>,
>> > std::allocator<std::pair<std::string const,
>> > itk::SmartPointer<itk::MetaDataObjectBase> > > >::begin (this=0x0) at
>> >
>> > /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h:599
>> > #1  0x00007ffff50efa65 in std::map<std::string,
>> > itk::SmartPointer<itk::MetaDataObjectBase>, std::less<std::string>,
>> > std::allocator<std::pair<std::string const,
>> > itk::SmartPointer<itk::MetaDataObjectBase> > > >::begin (this=0x0)
>> >    at
>> >
>> > /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h:276
>> > #2  0x00007ffff50ef0b6 in itk::MetaDataDictionary::Begin (this=0x791a60)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkMetaDataDictionary.cxx:108
>> > #3  0x00007ffff7caaab7 in itk::GDCMImageIO::Write (this=0x7fffffffd130,
>> > buffer=0x791110)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/IO/itkGDCMImageIO.cxx:1338
>> > #4  0x000000000047e461 in itk::ImageFileReader<itk::Image<short, 3u>,
>> > itk::DefaultConvertPixelTraits<short> >::EnlargeOutputRequestedRegion ()
>> > #5  0x00007ffff502f0e0 in itk::ProcessObject::PropagateRequestedRegion
>> > (this=0x784260, output=0x788630)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkProcessObject.cxx:783
>> > #6  0x00007ffff4ff667b in itk::DataObject::PropagateRequestedRegion
>> > (this=0x788630)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkDataObject.cxx:389
>> > #7  0x00007ffff4ff49e0 in itk::DataObject::Update (this=0x788630)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkDataObject.cxx:343
>> > #8  0x00007ffff502f3ef in itk::ProcessObject::Update (this=0x784260)
>> >    at
>> >
>> > /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkProcessObject.cxx:615
>> > #9  0x000000000043fd3d in main ()
>> > (gdb)
>> >
>> >
>> > On Mon, Nov 30, 2009 at 2:56 PM, John Drozd <john.drozd at gmail.com>
>> > wrote:
>> >
>> >> Hi Bill,
>> >>
>> >> I installed the nightly build of 3D Slicer which includes Itk 3.16.
>> >>
>> >> As you suggested I tried to compile my code with Itk 3.16, to see if
>> >> the
>> >> "upside down" problem prevailed, but a new bigger problem exists for me
>> >> with
>> >> using Itk 3.16.
>> >>
>> >> I am perplexed that using Itk 3.16, my code segmenation faults when I
>> >> invoke reader->Update(),
>> >> for a dicom series or a dicom volume, whereas previously with itk 3.14
>> >> it
>> >> worked just fine.
>> >>
>> >> I am currently trying to figure out how to set the "-g" compiler option
>> >> for
>> >> the CMakeLists.txt file so I can run the gdb debugger on it to find out
>> >> where it segmentation faults.
>> >>
>> >> I tried the command:
>> >> set (CMAKE_CXX_FLAGS_DEBUG_INIT "-g")
>> >> but so far that has not worked.
>> >>
>> >> john
>> >>
>> >> On Fri, Nov 27, 2009 at 4:48 PM, Bill Lorensen
>> >> <bill.lorensen at gmail.com>wrote:
>> >>
>> >>> John,
>> >>>
>> >>> Actually, Mathieu reported in response that updating to 3.16 may help.
>> >>> Can you try this first?
>> >>>
>> >>> Bill
>> >>>
>> >>> On Fri, Nov 27, 2009 at 12:42 PM, John Drozd <john.drozd at gmail.com>
>> >>> wrote:
>> >>> > Hi again,
>> >>> >
>> >>> > I was at home and I just figured out how to provide you this link to
>> >>> > my
>> >>> data
>> >>> > remotely,
>> >>> > so I provide it now instead of on the weekend:
>> >>> >
>> >>> > Here is a link to my data (3D dicom volume):
>> >>> >
>> >>> > input volume for my ConnectedThresholdFilter code:
>> >>> >
>> >>> > http://www.apmaths.uwo.ca/~jdrozd/correctedsubject5.dcm<http://www.apmaths.uwo.ca/%7Ejdrozd/correctedsubject5.dcm>
>> >>> >
>> >>> > output volume from my ConnectedThresholdFilter code:
>> >>> >
>> >>> > http://www.apmaths.uwo.ca/~jdrozd/outsubject5.dcm<http://www.apmaths.uwo.ca/%7Ejdrozd/outsubject5.dcm>
>> >>> >
>> >>> > If you need my CMakeLists.txt file, just let me know.
>> >>> >
>> >>> > to run the code type:
>> >>> > ./ConnectedThresholdImageFilter correctedsubject5.dcm
>> >>> > outsubject5.dcm
>> >>> 103
>> >>> > 142 95 17100 17300
>> >>> > and here is my code below:
>> >>> >
>> >>> >
>> >>> >
>> >>> > Below is my uncommented code:
>> >>> > /*
>> >>> > to run type:
>> >>> > ./ConnectedThresholdImageFilter correctedsubject5.dcm
>> >>> > outsubject5.dcm
>> >>> 103
>> >>> > 142 95 17100 17300
>> >>> > */
>> >>> > #if defined(_MSC_VER)
>> >>> > #pragma warning ( disable : 4786 )
>> >>> > #endif
>> >>> > #ifdef __BORLANDC__
>> >>> > #define ITK_LEAN_AND_MEAN
>> >>> > #endif
>> >>> > #include "itkConnectedThresholdImageFilter.h"
>> >>> > #include "itkImage.h"
>> >>> > #include "itkCastImageFilter.h"
>> >>> > #include "itkCurvatureFlowImageFilter.h"
>> >>> > #include "itkImageFileReader.h"
>> >>> > #include "itkImageFileWriter.h"
>> >>> > #include "itkGDCMImageIO.h"
>> >>> > #include "itkVersion.h"
>> >>> > #include "itkOrientedImage.h"
>> >>> > #include "itkMinimumMaximumImageFilter.h"
>> >>> > #include "itkGDCMImageIO.h"
>> >>> > #include "itkGDCMSeriesFileNames.h"
>> >>> > #include "itkNumericSeriesFileNames.h"
>> >>> > #include "itkImageSeriesReader.h"
>> >>> > #include "itkImageSeriesWriter.h"
>> >>> > #include "itkResampleImageFilter.h"
>> >>> > #include "itkShiftScaleImageFilter.h"
>> >>> > #include "itkIdentityTransform.h"
>> >>> > #include "itkLinearInterpolateImageFunction.h"
>> >>> > #include <itksys/SystemTools.hxx>
>> >>> > #include "gdcm/src/gdcmFile.h"
>> >>> > #include "gdcm/src/gdcmUtil.h"
>> >>> > #include <string>
>> >>> > int main( int argc, char *argv[])
>> >>> > {
>> >>> >   if( argc < 7 )
>> >>> >     {
>> >>> >     std::cerr << "Missing Parameters " << std::endl;
>> >>> >     std::cerr << "Usage: " << argv[0];
>> >>> >     std::cerr << " inputImage  outputImage seedX seedY seedZ
>> >>> lowerThreshold
>> >>> > upperThreshold" << std::endl;
>> >>> >     return 1;
>> >>> >     }
>> >>> >   typedef   float           InternalPixelType;
>> >>> >
>> >>> >   const     unsigned int    Dimension = 3;
>> >>> >   typedef itk::Image< InternalPixelType, Dimension >
>> >>> >  InternalImageType;
>> >>> >   typedef signed short OutputPixelType;
>> >>> >   typedef itk::Image< OutputPixelType, Dimension > OutputImageType;
>> >>> >   typedef itk::Image< float, Dimension > OutputImageType2;
>> >>> >   typedef itk::CastImageFilter< InternalImageType, OutputImageType >
>> >>> >     CastingFilterType;
>> >>> >   CastingFilterType::Pointer caster = CastingFilterType::New();
>> >>> >
>> >>> >   const    unsigned int    ImageDimension = 3;
>> >>> >   typedef  signed short    PixelType;
>> >>> >   typedef itk::Image< PixelType, ImageDimension >  FixedImageType;
>> >>> >   typedef itk::Image< float, ImageDimension >  FloatImageType;
>> >>> >   typedef  itk::ImageFileReader< FixedImageType > ReaderType;
>> >>> >   typedef  itk::ImageFileWriter<  OutputImageType  > WriterType;
>> >>> >   typedef  itk::ImageFileWriter<  FloatImageType  > WriterType2;
>> >>> >   ReaderType::Pointer reader = ReaderType::New();
>> >>> >   WriterType::Pointer writer = WriterType::New();
>> >>> >   WriterType2::Pointer writer2 = WriterType2::New();
>> >>> >   typedef itk::GDCMImageIO           ImageIOTypefixed;
>> >>> >   ImageIOTypefixed::Pointer gdcmImageIOfixed =
>> >>> > ImageIOTypefixed::New();
>> >>> >   reader->SetImageIO( gdcmImageIOfixed );
>> >>> >   typedef itk::GDCMImageIO           ImageIOTypefixed2;
>> >>> >   ImageIOTypefixed2::Pointer gdcmImageIOfixed2 =
>> >>> ImageIOTypefixed2::New();
>> >>> >   reader->SetFileName( argv[1] );
>> >>> >   reader->Update();
>> >>> >   typedef itk::CurvatureFlowImageFilter< InternalImageType,
>> >>> > InternalImageType >
>> >>> >     CurvatureFlowImageFilterType;
>> >>> >
>> >>> >   CurvatureFlowImageFilterType::Pointer smoothing =
>> >>> >                          CurvatureFlowImageFilterType::New();
>> >>> >   typedef itk::ConnectedThresholdImageFilter< InternalImageType,
>> >>> >                                     InternalImageType >
>> >>> ConnectedFilterType;
>> >>> >   ConnectedFilterType::Pointer connectedThreshold =
>> >>> > ConnectedFilterType::New();
>> >>> >   typedef signed short InputAPixelType;
>> >>> >   typedef float OutputBPixelType;
>> >>> >   typedef itk::Image< InputAPixelType, 3 > InputAImageType;
>> >>> >   typedef itk::Image< OutputBPixelType, 3 > OutputBImageType;
>> >>> >   typedef itk::CastImageFilter< InputAImageType, OutputBImageType >
>> >>> > CastFilterType;
>> >>> >   CastFilterType::Pointer castFilter = CastFilterType::New();
>> >>> >   castFilter->SetInput( reader->GetOutput() );
>> >>> >
>> >>> >   connectedThreshold->SetInput( castFilter->GetOutput() );
>> >>> >   caster->SetInput( connectedThreshold->GetOutput() );
>> >>> >   smoothing->SetNumberOfIterations( 20 ); //was 5
>> >>> >   smoothing->SetTimeStep( 0.125 );
>> >>> >
>> >>> >   const InternalPixelType lowerThreshold = atof( argv[6] );
>> >>> >   const InternalPixelType upperThreshold = atof( argv[7] );
>> >>> >
>> >>> >   connectedThreshold->SetLower(  lowerThreshold  );
>> >>> >   connectedThreshold->SetUpper(  upperThreshold  );
>> >>> >
>> >>> >   connectedThreshold->SetReplaceValue( 255 );
>> >>> >   InternalImageType::IndexType  index;
>> >>> >
>> >>> >   index[0] = atoi( argv[3] );
>> >>> >   index[1] = atoi( argv[4] );
>> >>> >
>> >>> >   //added
>> >>> >   index[2] = atoi( argv[5] );
>> >>> >   std::cout << index << std::endl;
>> >>> >   // Software Guide : BeginCodeSnippet
>> >>> >   connectedThreshold->SetSeed( index );
>> >>> >
>> >>> >   //obtain a 5 x 5 bounding region of seeds
>> >>> >   int ii, jj, kk;
>> >>> >   ii = index[0];
>> >>> >   jj = index[1];
>> >>> >   kk = index[2];
>> >>> >   for (int i = ii; i < ii + 5; i++)
>> >>> >     for (int j = jj; j < jj + 5; j++)
>> >>> >       for (int k = kk; k < kk + 5; k++)
>> >>> >     {
>> >>> >
>> >>> >       index[0] = i;
>> >>> >       index[1] = j;
>> >>> >       index[2] = k;
>> >>> >       connectedThreshold->AddSeed( index );
>> >>> >     }
>> >>> >   for (int i = ii; i > ii - 5; i--)
>> >>> >     for (int j = jj; j > jj - 5; j--)
>> >>> >       for (int k = kk; k > kk - 5; k--)
>> >>> >     {
>> >>> >
>> >>> >       index[0] = i;
>> >>> >       index[1] = j;
>> >>> >       index[2] = k;
>> >>> >       connectedThreshold->AddSeed( index );
>> >>> >     }
>> >>> >   connectedThreshold->Print(std::cout,17100);
>> >>> >
>> >>> >   typedef itk::MetaDataDictionary DictionaryType;
>> >>> >
>> >>> >   DictionaryType inputdict = reader->GetMetaDataDictionary();
>> >>> >
>> >>> >   writer->SetMetaDataDictionary( inputdict );
>> >>> >
>> >>> >   writer->SetFileName( argv[2] );
>> >>> >
>> >>> >   writer->SetInput( caster->GetOutput() );
>> >>> >   try
>> >>> >     {
>> >>> >     writer->Update();
>> >>> >     }
>> >>> >   catch( itk::ExceptionObject & excep )
>> >>> >     {
>> >>> >     std::cerr << "Exception caught !" << std::endl;
>> >>> >     std::cerr << excep << std::endl;
>> >>> >     }
>> >>> >   return 0;
>> >>> > On Fri, Nov 27, 2009 at 12:31 PM, John Drozd <john.drozd at gmail.com>
>> >>> wrote:
>> >>> >>
>> >>> >> Hi all,
>> >>> >>
>> >>> >> I originally have a dicom series of 2d slices which I had converted
>> >>> >> to
>> >>> a
>> >>> >> 3D dicom volume for processing.
>> >>> >> I'll try processing the dicom series and then write the output to a
>> >>> dicom
>> >>> >> series of 2d slices, to see if I can circumvent this problem.
>> >>> >> I'll let you know if this works?
>> >>> >>
>> >>> >> I'll provide a link to my data as well, but it probably won't be
>> >>> >> until
>> >>> the
>> >>> >> weekend.
>> >>> >>
>> >>> >> Thanks,
>> >>> >> john
>> >>> >>
>> >>> >> On Fri, Nov 27, 2009 at 12:23 PM, Mathieu Malaterre
>> >>> >> <mathieu.malaterre at gmail.com> wrote:
>> >>> >>>
>> >>> >>> This is a post ITK 3.16 feature I am afraid:
>> >>> >>>
>> >>> >>> http://www.cmake.org/Bug/view.php?id=7748
>> >>> >>>
>> >>> >>> (0017626)
>> >>> >>> Mathieu.Malaterre (developer)
>> >>> >>> 2009-09-19 06:51
>> >>> >>>
>> >>> >>>        This will be post ITK 3.16.
>> >>> >>>
>> >>> >>> Thanks for the patch ! Sorry for being so long to fix it.
>> >>> >>>
>> >>> >>> On Fri, Nov 27, 2009 at 6:11 PM, Bill Lorensen <
>> >>> bill.lorensen at gmail.com>
>> >>> >>> wrote:
>> >>> >>> > John,
>> >>> >>> >
>> >>> >>> > 3.16 will not help. This looks like a bug for sure.
>> >>> >>> >
>> >>> >>> > Can you provide a link to a dataset that we can use to reproduce
>> >>> >>> > the
>> >>> >>> > problem? We don't have much experience with 3D dicom files I'm
>> >>> afraid.
>> >>> >>> >
>> >>> >>> > Bill
>> >>> >>> >
>> >>> >>> > On Fri, Nov 27, 2009 at 11:59 AM, John Drozd
>> >>> >>> > <john.drozd at gmail.com>
>> >>> >>> > wrote:
>> >>> >>> >> Hi Bill,
>> >>> >>> >>
>> >>> >>> >> I am currently using the ITK 3.14 that is in the 3D Slicer 3.4
>> >>> >>> >> directory Slicer3-lib/Insight
>> >>> >>> >>
>> >>> >>> >> If I upgrade to ITK 3.16, will this solve my problem?
>> >>> >>> >>
>> >>> >>> >> I downloaded ITK 3.16 and noticed using the diff command that
>> >>> >>> >> itkGDCMIO.h has been modified from what it was in ITK 3.14.
>> >>> >>> >>
>> >>> >>> >> But when I ran diff on gdcmOrientation.cxx in both versions of
>> >>> >>> >> ITK,
>> >>> >>> >> diff showed no difference.
>> >>> >>> >>
>> >>> >>> >> John
>> >>> >>> >>
>> >>> >>> >> On Friday, November 27, 2009, Bill Lorensen <
>> >>> bill.lorensen at gmail.com>
>> >>> >>> >> wrote:
>> >>> >>> >>> John,
>> >>> >>> >>>
>> >>> >>> >>> What version of itk are you using? Are you using the gdcm 1.x
>> >>> >>> >>> that
>> >>> is
>> >>> >>> >>> in the itk source tree or an external gdcm 2.x version?
>> >>> >>> >>>
>> >>> >>> >>> Bill
>> >>> >>> >>>
>> >>> >>> >>> On Thu, Nov 26, 2009 at 3:22 PM, John Drozd
>> >>> >>> >>> <john.drozd at gmail.com
>> >>> >
>> >>> >>> >>> wrote:
>> >>> >>> >>>> Hi Luis,
>> >>> >>> >>>>
>> >>> >>> >>>> I was getting a segmentation fault because I had forgotten to
>> >>> change
>> >>> >>> >>>> the
>> >>> >>> >>>> Dimension from 2 to 3 in DicomReadPrintTag.cxx.
>> >>> >>> >>>>
>> >>> >>> >>>> For the input image, I have:
>> >>> >>> >>>> (0020|0037) Image Orientation (Patient) =
>> >>> 0.0\0.0\-1.0\0.0\1.0\0.0
>> >>> >>> >>>>
>> >>> >>> >>>> For the output image, I have:
>> >>> >>> >>>> (0020|0037) Image Orientation (Patient) =
>> >>> >>> >>>> 0.000000\0.000000\1.000000\0.000000\1.000000\0.000000
>> >>> >>> >>>>
>> >>> >>> >>>> There is a difference.  Since the program is changing the
>> >>> >>> >>>> orientation when
>> >>> >>> >>>> processed through the pipeline, is the best approach to
>> >>> >>> >>>> manually
>> >>> >>> >>>> change the
>> >>> >>> >>>> orientation tag of the dictionary and then copy the revised
>> >>> >>> >>>> dictionary to
>> >>> >>> >>>> the output file?
>> >>> >>> >>>>
>> >>> >>> >>>> john
>> >>> >>> >>>>
>> >>> >>> >>>> Below are the full tags:
>> >>> >>> >>>>
>> >>> >>> >>>> [jdrozd at trumpet DicomImageReadPrintTags]$
>> >>> ./DicomImageReadPrintTags
>> >>> >>> >>>> correctedsubject5.dcm
>> >>> >>> >>>> (0002|0000) Group Length =
>> >>> >>> >>>> 214
>> >>> >>> >>>> (0002|0001) File Meta Information Version =
>> >>> >>> >>>> AAE=
>> >>> >>> >>>> (0002|0002) Media Storage SOP Class UID =
>> >>> >>> >>>> 1.2.840.10008.5.1.4.1.1.2
>> >>> >>> >>>> (0002|0003) Media Storage SOP Instance UID =
>> >>> >>> >>>>
>> >>> >>> >>>> 1.2.826.0.1.3680043.2.1125.1.10607669833050788267094246636093811
>> >>> >>> >>>> (0002|0010) Transfer Syntax UID =
>> >>> >>> >>>> 1.2.840.10008.1.2.1
>> >>> >>> >>>> (0002|0012) Implementation Class UID =
>> >>> >>> >>>> 147.144.143.155
>> >>> >>> >>>> (0002|0013) Implementation Version Name = ITK/GDCM
>> >>> >>> >>>> 1.2.4
>> >>> >>> >>>> (0002|0016) Source Application Entity Title =
>> >>> >>> >>>> NOTSPECIFIED
>> >>> >>> >>>> (0008|0008) Image Type =
>> >>> >>> >>>> DERIVED\PRIMARY
>> >>> >>> >>>> (0008|0012) Instance Creation Date =
>> >>> >>> >>>> 20091029
>> >>> >>> >>>> (0008|0013) Instance Creation Time =
>> >>> >>> >>>> 135224
>> >>> >>> >>>> (0008|0016) SOP Class UID =
>> >>> >>> >>>> 1.2.840.10008.5.1.4.1.1.2
>> >>> >>> >>>> (0008|0018) SOP Instance UID =
>> >>> >>> >>>>
>> >>> >>> >>>> 1.2.826.0.1.3680043.2.1125.1.10607669833050788267094246636093811
>> >>> >>> >>>> (0008|0020) Study Date =
>> >>> >>> >>>> 20081030
>> >>> >>> >>>> (0008|0030) Study Time =
>> >>> >>> >>>> 164348.940
>> >>> >>> >>>> (0008|0050) Accession Number
>> >>> >>> >>>> =
>> >>> >>> >>>> (0008|0060) Modality =
>> >>> >>> >>>> CT
>> >>> >>> >>>> (0008|0064) Conversion Type =
>> >>> >>> >>>> WSD
>> >>> >>> >>>> (0008|0070) Manufacturer =
>> >>> >>> >>>> Manifacturer
>> >>> >>> >>>> (0008|0080) Institution Name = GDCM
>> >>> >>> >>>> Hospital
>> >>> >>> >>>> (0008|0090) Referring Physician's Name = Refering
>> >>> >>> >>>> Phisician
>> >>> >>> >>>> (0010|0010) Patient's Name = Patient
>> >>> >>> >>>> 188858520
>> >>> >>> >>>> (0010|0020) Patient ID =
>> >>> >>> >>>> 1747233212
>> >>> >>> >>>> (0010|0030) Patient's Birth Date =
>> >>> >>> >>>> 19500101
>> >>> >>> >>>> (0010|0040) Patient's Sex =
>> >>> >>> >>>> M
>> >>> >>> >>>> (0018|0088) Spacing Between Slices =
>> >>> >>> >>>> 1.207500
>> >>> >>> >>>> (0018|1164) Imager Pixel Spacing =
>> >>> >>> >>>> 0.945750\0.945750
>> >>> >>> >>>> (0020|000d) Study Instance UID =
>> >>> >>> >>>>
>> >>> >>> >>>> 1.2.826.0.1.3680043.2.1125.1.53653479342656887425609263146205769
>> >>> >>> >>>> (0020|000e) Series Instance UID =
>> >>> >>> >>>>
>> >>> >>> >>>> 1.2.826.0.1.3680043.2.1125.1.47155241092896696198844159625679986
>> >>> >>> >>>> (0020|0010) Study ID =
>> >>> >>> >>>> 1533117581
>> >>> >>> >>>> (0020|0011) Series Number =
>> >>> >>> >>>> 2135500125
>> >>> >>> >>>> (0020|0013) Instance Number =
>> >>> >>> >>>> 165
>> >>> >>> >>>> (0020|0020) Patient Orientation =
>> >>> >>> >>>> L\P
>> >>> >>> >>>> (0020|0032) Image Position (Patient) =
>> >>> >>> >>>> 199.237496852874\0.0\0.0
>> >>> >>> >>>> (0020|0037) Image Orientation (Patient) =
>> >>> >>> >>>> 0.0\0.0\-1.0\0.0\1.0\0.0
>> >>> >>> >>>> (0020|4000) Image Comments = NOT FOR CLINICAL
>> >>> >>> >>>> USE
>> >>> >>> >>>> (0028|0002) Samples per Pixel =
>> >>> >>> >>>> 1
>> >>> >>> >>>> (0028|0004) Photometric Interpretation =
>> >>> >>> >>>> MONOCHROME2
>> >>> >>> >>>> (0028|0008) Number of Frames =
>> >>> >>> >>>> 166
>> >>> >>> >>>> (0028|0010) Rows =
>> >>> >>> >>>> 256
>> >>> >>> >>>> (0028|0011) Columns =
>> >>> >>> >>>> 256
>> >>> >>> >>>> (0028|0030) Pixel Spacing =
>> >>> >>> >>>> 0.945750\0.945750
>> >>> >>> >>>> (0028|0034) Pixel Aspect Ratio =
>> >>> >>> >>>> 1\1
>> >>> >>> >>>> (0028|0100) Bits Allocated =
>> >>> >>> >>>> 16
>> >>> >>> >>>> (0028|0101) Bits Stored =
>> >>> >>> >>>> 16
>> >>> >>> >>>> (0028|0102) High Bit =
>> >>> >>> >>>> 15
>> >>> >>> >>>> (0028|0103) Pixel Representation =
>> >>> >>> >>>> 0
>> >>> >>> >>>> (0028|1052) Rescale Intercept =
>> >>> >>> >>>> 0.0
>> >>> >>> >>>> (0028|1053) Rescale Slope =
>> >>> >>> >>>> 1.0
>> >>> >>> >>>> (0028|1054) Rescale Type =
>> >>> >>> >>>> US
>> >>> >>> >>>> (7fe0|0000) Group Length =
>> >>> >>> >>>> 21757964
>> >>> >>> >>>> Patient's Name (0010|0010)  is: Patient
>> >>> >>> >>>> 188858520
>> >>> >>> >>>> Performing Physician's Name (0008|1050): (No Value Found in
>> >>> >>> >>>> File)
>> >>> >>> >>>> PixelType:
>> >>> >>> >>>> scalar
>> >>> >>> >>>> Component Type: unsigned_short
>> >>> >>> >>>>
>> >>> >>> >>>> [jdrozd at trumpet DicomImageReadPrintTags]$
>> >>> ./DicomImageReadPrintTags
>> >>> >>> >>>> outsubject5.dcm
>> >>> >>> >>>> (0002|0000) Group Length =
>> >>> >>> >>>> 194
>> >>> >>> >>>> (0002|00
>> >>> >>> >>
>> >>> >>> > _____________________________________
>> >>> >>> > Powered by www.kitware.com
>> >>> >>> >
>> >>> >>> > Visit other Kitware open-source projects at
>> >>> >>> > http://www.kitware.com/opensource/opensource.html
>> >>> >>> >
>> >>> >>> > Kitware offers ITK Training Courses, for more information visit:
>> >>> >>> > http://www.kitware.com/products/protraining.html
>> >>> >>> >
>> >>> >>> > Please keep messages on-topic and check the ITK FAQ at:
>> >>> >>> > http://www.itk.org/Wiki/ITK_FAQ
>> >>> >>> >
>> >>> >>> > Follow this link to subscribe/unsubscribe:
>> >>> >>> > http://www.itk.org/mailman/listinfo/insight-users
>> >>> >>> >
>> >>> >>>
>> >>> >>>
>> >>> >>>
>> >>> >>> --
>> >>> >>> Mathieu
>> >>> >>
>> >>> >
>> >>> >
>> >>>
>> >>
>> >>
>> > -------------- next part --------------
>> > An HTML attachment was scrubbed...
>> > URL:
>> > <http://www.itk.org/pipermail/insight-users/attachments/20091130/706fed79/attachment.htm>
>> >
>> > ------------------------------
>> >
>> > _______________________________________________
>> > Insight-users mailing list
>> > Insight-users at itk.org
>> > http://www.itk.org/mailman/listinfo/insight-users
>> >
>> >
>> > End of Insight-users Digest, Vol 67, Issue 178
>> > **********************************************
>> >
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>


More information about the Insight-users mailing list