+ } // while
+//EED outputImage4D[k]=outputImage;
+ } // for k
+//EED return outputImage4D;
+
+*/
+
+
+
+// http://www.itk.org/pipermail/insight-users/2003-December/005796.html
+// http://www.itk.org/Wiki/ITK/Examples/ImageProcessing/InvertIntensityImageFilter
+
+
+ int ext[6];
+ int dimX, dimY, dimZ;
+ long int sizeimage;
+ unsigned int k, i;
+
+ _image4Dvtk[0]->GetWholeExtent(ext);
+ dimX = ext[1]-ext[0]+1;
+ dimY = ext[3]-ext[2]+1;
+ dimZ = ext[5]-ext[4]+1;
+ sizeimage = dimX*dimY*dimZ;
+
+
+
+ typedef itk::ImageRegionIterator< Image4DType > Iterator4D;
+// typedef itk::ImageRegionConstIterator< Image4DType > Iterator4D;
+// typedef itk::ImageRegionConstIteratorWithIndex< Image4DType > Iterator4D;
+
+
+ _image4D = Image4DType::New();
+
+ Image4DType::RegionType region;
+ Image4DType::IndexType start;
+ start[0] = 0;
+ start[1] = 0;
+ start[2] = 0;
+ start[3] = 0;
+
+ Image4DType::SizeType size;
+ unsigned int NumRows = dimX;
+ unsigned int NumCols = dimY;
+ unsigned int NumSlices = dimZ;
+ unsigned int NumVolumes = _image4Dvtk.size();
+ size[0] = NumRows;
+ size[1] = NumCols;
+ size[2] = NumSlices;
+ size[3] = NumVolumes;
+
+ region.SetSize(size);
+ region.SetIndex(start);
+
+ _image4D->SetRegions(region);
+ _image4D->Allocate();
+
+
+// Iterator4D it4( image4D, image4D->GetBufferedRegion() );
+ Iterator4D it4( _image4D, _image4D->GetLargestPossibleRegion() );
+ it4.GoToBegin();
+ for(k = 0 ; k < _image4Dvtk.size() ; k++)
+ {
+ unsigned short * ptrVtkImage;
+ ptrVtkImage = (unsigned short *)_image4Dvtk[k]->GetScalarPointer();
+ for (i=0; i< sizeimage;i++)
+ {
+ it4.Set( *ptrVtkImage );
+// *it4 = *ptrVtkImage;
+// unsigned short q= it4.Get();
+ ++it4;
+ ptrVtkImage++;
+ }