Hi Bill,<br><br>I ended up using the statementy in my CMakeLists.txt file:<br>SET (CMAKE_CXX_FLAGS_DEBUG &quot;-DDEBUG -ggdb&quot; CACHE STRING &quot;Flags used by the compiler during debug builds.&quot; FORCE)<br><br>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:<br>
<br>thanks,<br>john<br><br>[jdrozd@trumpet ConnectedThresholdImageFilter2]$ gdb ./ConnectedThresholdImageFilter                                                                         <br>GNU gdb Fedora (6.8-32.fc10)                                                                                                                                 <br>
Copyright (C) 2008 Free Software Foundation, Inc.                                                                                                            <br>License GPLv3+: GNU GPL version 3 or later &lt;<a href="http://gnu.org/licenses/gpl.html">http://gnu.org/licenses/gpl.html</a>&gt;                                                                                <br>
This is free software: you are free to change and redistribute it.                                                                                           <br>There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;                                                                                   <br>
and &quot;show warranty&quot; for details.                                                                                                                             <br>This GDB was configured as &quot;x86_64-redhat-linux-gnu&quot;...                                                                                                      <br>
(no debugging symbols found)                                                                                                                                 <br>(gdb) set args correctedsubject5.dcm outsubject5.dcm 103 142 95 17100 17300                                                                                  <br>
(gdb) run                                                                                                                                                    <br>Starting program: /trumpet/downloads/ConnectedThresholdImageFilter_Plugin/ConnectedThresholdImageFilter/ConnectedThresholdImageFilter2/ConnectedThresholdImageFilter correctedsubject5.dcm outsubject5.dcm 103 142 95 17100 17300                                                                                         <br>
(no debugging symbols found)                                                                                                                                 <br>(no debugging symbols found)<br>[Thread debugging using libthread_db enabled]<br>
[New Thread 0x7ffff3b8c750 (LWP 24704)]<br><br>Program received signal SIGSEGV, Segmentation fault.<br>0x00007ffff50efa3a in std::_Rb_tree&lt;std::string, std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt;, std::_Select1st&lt;std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt; &gt;, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt; &gt; &gt;::begin (this=0x0) at /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h:599<br>
599                             (this-&gt;_M_impl._M_header._M_left));<br>Current language:  auto; currently c++<br>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<br>
(gdb) where<br>#0  0x00007ffff50efa3a in std::_Rb_tree&lt;std::string, std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt;, std::_Select1st&lt;std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt; &gt;, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt; &gt; &gt;::begin (this=0x0) at /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_tree.h:599<br>
#1  0x00007ffff50efa65 in std::map&lt;std::string, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt;, std::less&lt;std::string&gt;, std::allocator&lt;std::pair&lt;std::string const, itk::SmartPointer&lt;itk::MetaDataObjectBase&gt; &gt; &gt; &gt;::begin (this=0x0)<br>
    at /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/stl_map.h:276<br>#2  0x00007ffff50ef0b6 in itk::MetaDataDictionary::Begin (this=0x791a60)<br>    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkMetaDataDictionary.cxx:108<br>
#3  0x00007ffff7caaab7 in itk::GDCMImageIO::Write (this=0x7fffffffd130, buffer=0x791110)<br>    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/IO/itkGDCMImageIO.cxx:1338<br>#4  0x000000000047e461 in itk::ImageFileReader&lt;itk::Image&lt;short, 3u&gt;, itk::DefaultConvertPixelTraits&lt;short&gt; &gt;::EnlargeOutputRequestedRegion ()<br>
#5  0x00007ffff502f0e0 in itk::ProcessObject::PropagateRequestedRegion (this=0x784260, output=0x788630)<br>    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkProcessObject.cxx:783<br>#6  0x00007ffff4ff667b in itk::DataObject::PropagateRequestedRegion (this=0x788630)<br>
    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkDataObject.cxx:389<br>#7  0x00007ffff4ff49e0 in itk::DataObject::Update (this=0x788630)<br>    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkDataObject.cxx:343<br>
#8  0x00007ffff502f3ef in itk::ProcessObject::Update (this=0x784260)<br>    at /trumpet/downloads/3DSlicerNov302009/Slicer3-lib/Insight/Code/Common/itkProcessObject.cxx:615<br>#9  0x000000000043fd3d in main ()<br>(gdb)<br>
<br><br><div class="gmail_quote">On Mon, Nov 30, 2009 at 2:56 PM, John Drozd <span dir="ltr">&lt;<a href="mailto:john.drozd@gmail.com">john.drozd@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Bill,<br><br>I installed the nightly build of 3D Slicer which includes Itk 3.16.<br><br>As you suggested I tried to compile my code with Itk 3.16, to see if the &quot;upside down&quot; problem prevailed, but a new bigger problem exists for me with using Itk 3.16.<br>

<br>I am perplexed that using Itk 3.16, my code segmenation faults when I invoke reader-&gt;Update(),<br>for a dicom series or a dicom volume, whereas previously with itk 3.14 it worked just fine.<br><br>I am currently trying to figure out how to set the &quot;-g&quot; compiler option for the CMakeLists.txt file so I can run the gdb debugger on it to find out where it segmentation faults.<br>

<br>I tried the command:<br>set (CMAKE_CXX_FLAGS_DEBUG_INIT &quot;-g&quot;)<br>but so far that has not worked.<br><font color="#888888"><br>john <br></font><div><div></div><div class="h5"><br><div class="gmail_quote">On Fri, Nov 27, 2009 at 4:48 PM, Bill Lorensen <span dir="ltr">&lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">John,<br>
<br>
Actually, Mathieu reported in response that updating to 3.16 may help.<br>
Can you try this first?<br>
<font color="#888888"><br>
Bill<br>
</font><div><div></div><div><br>
On Fri, Nov 27, 2009 at 12:42 PM, John Drozd &lt;<a href="mailto:john.drozd@gmail.com" target="_blank">john.drozd@gmail.com</a>&gt; wrote:<br>
&gt; Hi again,<br>
&gt;<br>
&gt; I was at home and I just figured out how to provide you this link to my data<br>
&gt; remotely,<br>
&gt; so I provide it now instead of on the weekend:<br>
&gt;<br>
&gt; Here is a link to my data (3D dicom volume):<br>
&gt;<br>
&gt; input volume for my ConnectedThresholdFilter code:<br>
&gt; <a href="http://www.apmaths.uwo.ca/%7Ejdrozd/correctedsubject5.dcm" target="_blank">http://www.apmaths.uwo.ca/~jdrozd/correctedsubject5.dcm</a><br>
&gt;<br>
&gt; output volume from my ConnectedThresholdFilter code:<br>
&gt; <a href="http://www.apmaths.uwo.ca/%7Ejdrozd/outsubject5.dcm" target="_blank">http://www.apmaths.uwo.ca/~jdrozd/outsubject5.dcm</a><br>
&gt;<br>
&gt; If you need my CMakeLists.txt file, just let me know.<br>
&gt;<br>
&gt; to run the code type:<br>
&gt; ./ConnectedThresholdImageFilter correctedsubject5.dcm outsubject5.dcm 103<br>
&gt; 142 95 17100 17300<br>
&gt; and here is my code below:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Below is my uncommented code:<br>
&gt; /*<br>
&gt; to run type:<br>
&gt; ./ConnectedThresholdImageFilter correctedsubject5.dcm outsubject5.dcm 103<br>
&gt; 142 95 17100 17300<br>
&gt; */<br>
&gt; #if defined(_MSC_VER)<br>
&gt; #pragma warning ( disable : 4786 )<br>
&gt; #endif<br>
&gt; #ifdef __BORLANDC__<br>
&gt; #define ITK_LEAN_AND_MEAN<br>
&gt; #endif<br>
&gt; #include &quot;itkConnectedThresholdImageFilter.h&quot;<br>
&gt; #include &quot;itkImage.h&quot;<br>
&gt; #include &quot;itkCastImageFilter.h&quot;<br>
&gt; #include &quot;itkCurvatureFlowImageFilter.h&quot;<br>
&gt; #include &quot;itkImageFileReader.h&quot;<br>
&gt; #include &quot;itkImageFileWriter.h&quot;<br>
&gt; #include &quot;itkGDCMImageIO.h&quot;<br>
&gt; #include &quot;itkVersion.h&quot;<br>
&gt; #include &quot;itkOrientedImage.h&quot;<br>
&gt; #include &quot;itkMinimumMaximumImageFilter.h&quot;<br>
&gt; #include &quot;itkGDCMImageIO.h&quot;<br>
&gt; #include &quot;itkGDCMSeriesFileNames.h&quot;<br>
&gt; #include &quot;itkNumericSeriesFileNames.h&quot;<br>
&gt; #include &quot;itkImageSeriesReader.h&quot;<br>
&gt; #include &quot;itkImageSeriesWriter.h&quot;<br>
&gt; #include &quot;itkResampleImageFilter.h&quot;<br>
&gt; #include &quot;itkShiftScaleImageFilter.h&quot;<br>
&gt; #include &quot;itkIdentityTransform.h&quot;<br>
&gt; #include &quot;itkLinearInterpolateImageFunction.h&quot;<br>
&gt; #include &lt;itksys/SystemTools.hxx&gt;<br>
&gt; #include &quot;gdcm/src/gdcmFile.h&quot;<br>
&gt; #include &quot;gdcm/src/gdcmUtil.h&quot;<br>
&gt; #include &lt;string&gt;<br>
&gt; int main( int argc, char *argv[])<br>
&gt; {<br>
&gt;   if( argc &lt; 7 )<br>
&gt;     {<br>
&gt;     std::cerr &lt;&lt; &quot;Missing Parameters &quot; &lt;&lt; std::endl;<br>
&gt;     std::cerr &lt;&lt; &quot;Usage: &quot; &lt;&lt; argv[0];<br>
&gt;     std::cerr &lt;&lt; &quot; inputImage  outputImage seedX seedY seedZ lowerThreshold<br>
&gt; upperThreshold&quot; &lt;&lt; std::endl;<br>
&gt;     return 1;<br>
&gt;     }<br>
&gt;   typedef   float           InternalPixelType;<br>
&gt;<br>
&gt;   const     unsigned int    Dimension = 3;<br>
&gt;   typedef itk::Image&lt; InternalPixelType, Dimension &gt;  InternalImageType;<br>
&gt;   typedef signed short OutputPixelType;<br>
&gt;   typedef itk::Image&lt; OutputPixelType, Dimension &gt; OutputImageType;<br>
&gt;   typedef itk::Image&lt; float, Dimension &gt; OutputImageType2;<br>
&gt;   typedef itk::CastImageFilter&lt; InternalImageType, OutputImageType &gt;<br>
&gt;     CastingFilterType;<br>
&gt;   CastingFilterType::Pointer caster = CastingFilterType::New();<br>
&gt;<br>
&gt;   const    unsigned int    ImageDimension = 3;<br>
&gt;   typedef  signed short    PixelType;<br>
&gt;   typedef itk::Image&lt; PixelType, ImageDimension &gt;  FixedImageType;<br>
&gt;   typedef itk::Image&lt; float, ImageDimension &gt;  FloatImageType;<br>
&gt;   typedef  itk::ImageFileReader&lt; FixedImageType &gt; ReaderType;<br>
&gt;   typedef  itk::ImageFileWriter&lt;  OutputImageType  &gt; WriterType;<br>
&gt;   typedef  itk::ImageFileWriter&lt;  FloatImageType  &gt; WriterType2;<br>
&gt;   ReaderType::Pointer reader = ReaderType::New();<br>
&gt;   WriterType::Pointer writer = WriterType::New();<br>
&gt;   WriterType2::Pointer writer2 = WriterType2::New();<br>
&gt;   typedef itk::GDCMImageIO           ImageIOTypefixed;<br>
&gt;   ImageIOTypefixed::Pointer gdcmImageIOfixed = ImageIOTypefixed::New();<br>
&gt;   reader-&gt;SetImageIO( gdcmImageIOfixed );<br>
&gt;   typedef itk::GDCMImageIO           ImageIOTypefixed2;<br>
&gt;   ImageIOTypefixed2::Pointer gdcmImageIOfixed2 = ImageIOTypefixed2::New();<br>
&gt;   reader-&gt;SetFileName( argv[1] );<br>
&gt;   reader-&gt;Update();<br>
&gt;   typedef itk::CurvatureFlowImageFilter&lt; InternalImageType,<br>
&gt; InternalImageType &gt;<br>
&gt;     CurvatureFlowImageFilterType;<br>
&gt;<br>
&gt;   CurvatureFlowImageFilterType::Pointer smoothing =<br>
&gt;                          CurvatureFlowImageFilterType::New();<br>
&gt;   typedef itk::ConnectedThresholdImageFilter&lt; InternalImageType,<br>
&gt;                                     InternalImageType &gt; ConnectedFilterType;<br>
&gt;   ConnectedFilterType::Pointer connectedThreshold =<br>
&gt; ConnectedFilterType::New();<br>
&gt;   typedef signed short InputAPixelType;<br>
&gt;   typedef float OutputBPixelType;<br>
&gt;   typedef itk::Image&lt; InputAPixelType, 3 &gt; InputAImageType;<br>
&gt;   typedef itk::Image&lt; OutputBPixelType, 3 &gt; OutputBImageType;<br>
&gt;   typedef itk::CastImageFilter&lt; InputAImageType, OutputBImageType &gt;<br>
&gt; CastFilterType;<br>
&gt;   CastFilterType::Pointer castFilter = CastFilterType::New();<br>
&gt;   castFilter-&gt;SetInput( reader-&gt;GetOutput() );<br>
&gt;<br>
&gt;   connectedThreshold-&gt;SetInput( castFilter-&gt;GetOutput() );<br>
&gt;   caster-&gt;SetInput( connectedThreshold-&gt;GetOutput() );<br>
&gt;   smoothing-&gt;SetNumberOfIterations( 20 ); //was 5<br>
&gt;   smoothing-&gt;SetTimeStep( 0.125 );<br>
&gt;<br>
&gt;   const InternalPixelType lowerThreshold = atof( argv[6] );<br>
&gt;   const InternalPixelType upperThreshold = atof( argv[7] );<br>
&gt;<br>
&gt;   connectedThreshold-&gt;SetLower(  lowerThreshold  );<br>
&gt;   connectedThreshold-&gt;SetUpper(  upperThreshold  );<br>
&gt;<br>
&gt;   connectedThreshold-&gt;SetReplaceValue( 255 );<br>
&gt;   InternalImageType::IndexType  index;<br>
&gt;<br>
&gt;   index[0] = atoi( argv[3] );<br>
&gt;   index[1] = atoi( argv[4] );<br>
&gt;<br>
&gt;   //added<br>
&gt;   index[2] = atoi( argv[5] );<br>
&gt;   std::cout &lt;&lt; index &lt;&lt; std::endl;<br>
&gt;   // Software Guide : BeginCodeSnippet<br>
&gt;   connectedThreshold-&gt;SetSeed( index );<br>
&gt;<br>
&gt;   //obtain a 5 x 5 bounding region of seeds<br>
&gt;   int ii, jj, kk;<br>
&gt;   ii = index[0];<br>
&gt;   jj = index[1];<br>
&gt;   kk = index[2];<br>
&gt;   for (int i = ii; i &lt; ii + 5; i++)<br>
&gt;     for (int j = jj; j &lt; jj + 5; j++)<br>
&gt;       for (int k = kk; k &lt; kk + 5; k++)<br>
&gt;     {<br>
&gt;<br>
&gt;       index[0] = i;<br>
&gt;       index[1] = j;<br>
&gt;       index[2] = k;<br>
&gt;       connectedThreshold-&gt;AddSeed( index );<br>
&gt;     }<br>
&gt;   for (int i = ii; i &gt; ii - 5; i--)<br>
&gt;     for (int j = jj; j &gt; jj - 5; j--)<br>
&gt;       for (int k = kk; k &gt; kk - 5; k--)<br>
&gt;     {<br>
&gt;<br>
&gt;       index[0] = i;<br>
&gt;       index[1] = j;<br>
&gt;       index[2] = k;<br>
&gt;       connectedThreshold-&gt;AddSeed( index );<br>
&gt;     }<br>
&gt;   connectedThreshold-&gt;Print(std::cout,17100);<br>
&gt;<br>
&gt;   typedef itk::MetaDataDictionary DictionaryType;<br>
&gt;<br>
&gt;   DictionaryType inputdict = reader-&gt;GetMetaDataDictionary();<br>
&gt;<br>
&gt;   writer-&gt;SetMetaDataDictionary( inputdict );<br>
&gt;<br>
&gt;   writer-&gt;SetFileName( argv[2] );<br>
&gt;<br>
&gt;   writer-&gt;SetInput( caster-&gt;GetOutput() );<br>
&gt;   try<br>
&gt;     {<br>
&gt;     writer-&gt;Update();<br>
&gt;     }<br>
&gt;   catch( itk::ExceptionObject &amp; excep )<br>
&gt;     {<br>
&gt;     std::cerr &lt;&lt; &quot;Exception caught !&quot; &lt;&lt; std::endl;<br>
&gt;     std::cerr &lt;&lt; excep &lt;&lt; std::endl;<br>
&gt;     }<br>
&gt;   return 0;<br>
&gt; On Fri, Nov 27, 2009 at 12:31 PM, John Drozd &lt;<a href="mailto:john.drozd@gmail.com" target="_blank">john.drozd@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi all,<br>
&gt;&gt;<br>
&gt;&gt; I originally have a dicom series of 2d slices which I had converted to a<br>
&gt;&gt; 3D dicom volume for processing.<br>
&gt;&gt; I&#39;ll try processing the dicom series and then write the output to a dicom<br>
&gt;&gt; series of 2d slices, to see if I can circumvent this problem.<br>
&gt;&gt; I&#39;ll let you know if this works?<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ll provide a link to my data as well, but it probably won&#39;t be until the<br>
&gt;&gt; weekend.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; john<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Nov 27, 2009 at 12:23 PM, Mathieu Malaterre<br>
&gt;&gt; &lt;<a href="mailto:mathieu.malaterre@gmail.com" target="_blank">mathieu.malaterre@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This is a post ITK 3.16 feature I am afraid:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href="http://www.cmake.org/Bug/view.php?id=7748" target="_blank">http://www.cmake.org/Bug/view.php?id=7748</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; (0017626)<br>
&gt;&gt;&gt; Mathieu.Malaterre (developer)<br>
&gt;&gt;&gt; 2009-09-19 06:51<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;        This will be post ITK 3.16.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks for the patch ! Sorry for being so long to fix it.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Fri, Nov 27, 2009 at 6:11 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt; John,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; 3.16 will not help. This looks like a bug for sure.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Can you provide a link to a dataset that we can use to reproduce the<br>
&gt;&gt;&gt; &gt; problem? We don&#39;t have much experience with 3D dicom files I&#39;m afraid.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Bill<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Fri, Nov 27, 2009 at 11:59 AM, John Drozd &lt;<a href="mailto:john.drozd@gmail.com" target="_blank">john.drozd@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; Hi Bill,<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I am currently using the ITK 3.14 that is in the 3D Slicer 3.4<br>
&gt;&gt;&gt; &gt;&gt; directory Slicer3-lib/Insight<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; If I upgrade to ITK 3.16, will this solve my problem?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; I downloaded ITK 3.16 and noticed using the diff command that<br>
&gt;&gt;&gt; &gt;&gt; itkGDCMIO.h has been modified from what it was in ITK 3.14.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; But when I ran diff on gdcmOrientation.cxx in both versions of ITK,<br>
&gt;&gt;&gt; &gt;&gt; diff showed no difference.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; John<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On Friday, November 27, 2009, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt; John,<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; What version of itk are you using? Are you using the gdcm 1.x that is<br>
&gt;&gt;&gt; &gt;&gt;&gt; in the itk source tree or an external gdcm 2.x version?<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Bill<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; On Thu, Nov 26, 2009 at 3:22 PM, John Drozd &lt;<a href="mailto:john.drozd@gmail.com" target="_blank">john.drozd@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Hi Luis,<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; I was getting a segmentation fault because I had forgotten to change<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Dimension from 2 to 3 in DicomReadPrintTag.cxx.<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; For the input image, I have:<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0037) Image Orientation (Patient) = 0.0\0.0\-1.0\0.0\1.0\0.0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; For the output image, I have:<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0037) Image Orientation (Patient) =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0.000000\0.000000\1.000000\0.000000\1.000000\0.000000<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; There is a difference.  Since the program is changing the<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; orientation when<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; processed through the pipeline, is the best approach to manually<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; change the<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; orientation tag of the dictionary and then copy the revised<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; dictionary to<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; the output file?<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; john<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Below are the full tags:<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; [jdrozd@trumpet DicomImageReadPrintTags]$ ./DicomImageReadPrintTags<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; correctedsubject5.dcm<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0000) Group Length =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 214<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0001) File Meta Information Version =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; AAE=<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0002) Media Storage SOP Class UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.840.10008.5.1.4.1.1.2<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0003) Media Storage SOP Instance UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.826.0.1.3680043.2.1125.1.10607669833050788267094246636093811<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0010) Transfer Syntax UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.840.10008.1.2.1<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0012) Implementation Class UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 147.144.143.155<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0013) Implementation Version Name = ITK/GDCM<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.4<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0016) Source Application Entity Title =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; NOTSPECIFIED<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0008) Image Type =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; DERIVED\PRIMARY<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0012) Instance Creation Date =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 20091029<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0013) Instance Creation Time =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 135224<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0016) SOP Class UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.840.10008.5.1.4.1.1.2<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0018) SOP Instance UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.826.0.1.3680043.2.1125.1.10607669833050788267094246636093811<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0020) Study Date =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 20081030<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0030) Study Time =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 164348.940<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0050) Accession Number<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0060) Modality =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; CT<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0064) Conversion Type =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; WSD<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0070) Manufacturer =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Manifacturer<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0080) Institution Name = GDCM<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Hospital<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0008|0090) Referring Physician&#39;s Name = Refering<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Phisician<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0010|0010) Patient&#39;s Name = Patient<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 188858520<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0010|0020) Patient ID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1747233212<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0010|0030) Patient&#39;s Birth Date =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 19500101<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0010|0040) Patient&#39;s Sex =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; M<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0018|0088) Spacing Between Slices =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.207500<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0018|1164) Imager Pixel Spacing =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0.945750\0.945750<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|000d) Study Instance UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.826.0.1.3680043.2.1125.1.53653479342656887425609263146205769<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|000e) Series Instance UID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.2.826.0.1.3680043.2.1125.1.47155241092896696198844159625679986<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0010) Study ID =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1533117581<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0011) Series Number =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 2135500125<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0013) Instance Number =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 165<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0020) Patient Orientation =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; L\P<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0032) Image Position (Patient) =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 199.237496852874\0.0\0.0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|0037) Image Orientation (Patient) =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0.0\0.0\-1.0\0.0\1.0\0.0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0020|4000) Image Comments = NOT FOR CLINICAL<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; USE<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0002) Samples per Pixel =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0004) Photometric Interpretation =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; MONOCHROME2<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0008) Number of Frames =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 166<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0010) Rows =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 256<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0011) Columns =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 256<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0030) Pixel Spacing =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0.945750\0.945750<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0034) Pixel Aspect Ratio =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1\1<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0100) Bits Allocated =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 16<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0101) Bits Stored =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 16<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0102) High Bit =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 15<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|0103) Pixel Representation =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|1052) Rescale Intercept =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 0.0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|1053) Rescale Slope =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 1.0<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0028|1054) Rescale Type =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; US<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (7fe0|0000) Group Length =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 21757964<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Patient&#39;s Name (0010|0010)  is: Patient<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 188858520<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Performing Physician&#39;s Name (0008|1050): (No Value Found in<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; File)<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; PixelType:<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; scalar<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; Component Type: unsigned_short<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; [jdrozd@trumpet DicomImageReadPrintTags]$ ./DicomImageReadPrintTags<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; outsubject5.dcm<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|0000) Group Length =<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; 194<br>
&gt;&gt;&gt; &gt;&gt;&gt;&gt; (0002|00<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt; _____________________________________<br>
&gt;&gt;&gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt;&gt; &gt; <a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt;&gt; &gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt; &gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Mathieu<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>