]> Creatis software - clitk.git/commitdiff
add missing "allocate"
authordsarrut <dsarrut>
Tue, 15 Feb 2011 10:45:04 +0000 (10:45 +0000)
committerdsarrut <dsarrut>
Tue, 15 Feb 2011 10:45:04 +0000 (10:45 +0000)
itk/clitkCropLikeImageFilter.h
itk/clitkCropLikeImageFilter.txx

index d288dc4034d792ef34e554fd370c36a2ce6d536a..221f61cd3fc7934738d7b9980352f4c6c9d06899 100644 (file)
@@ -64,8 +64,6 @@ namespace clitk {
 
     /** ImageDimension constants */
     itkStaticConstMacro(ImageDimension, unsigned int, ImageType::ImageDimension);
-    
-    //    void Update() { GenerateOutputInformation(); GenerateData(); }
 
   protected:
     CropLikeImageFilter();
@@ -82,7 +80,6 @@ namespace clitk {
     bool m_LikeFilenameIsGiven;
     PointType m_Origin;
     const itk::ImageBase<ImageDimension> * m_LikeImage;
-    //typename ImageType::Pointer m_LikeImage;
     std::vector<bool> m_CropAlongThisDimension;
     
     PointType m_StartPoint;         // start point in physical world
index 8b90fe30e704a1b1b61454608b01c477ceda89d6..74be28ef641a20ddce21c20569d26f7cb939d7b1 100644 (file)
@@ -93,8 +93,7 @@ GenerateInputRequestedRegion() {
 template <class ImageType>
 void 
 clitk::CropLikeImageFilter<ImageType>::
-GenerateOutputInformation() {    
-  DD("GenerateOutputInformation");
+GenerateOutputInformation() {   
   // Get input pointers
   ImageConstPointer input = dynamic_cast<const ImageType*>(itk::ProcessObject::GetInput(0));
     
@@ -132,8 +131,8 @@ GenerateOutputInformation() {
   for(unsigned int i=0; i<ImageType::ImageDimension; i++) {
     if (likeSpacing[i] != input->GetSpacing()[i]) {
       clitkExceptionMacro("Images must have the same spacing, but input's spacing(" << i
-                          <<") is " << input->GetSpacing()[i] << " while like's spacing(" << i 
-                          << ") is " << likeSpacing[i] << ".");
+                          <<") is " << input->GetSpacing()[i] << " while the spacing(" << i 
+                          << ") of 'like' is " << likeSpacing[i] << ".");
     }
   }
   // Define output region 
@@ -144,6 +143,7 @@ GenerateOutputInformation() {
   output->SetBufferedRegion(m_OutputRegion);
   output->SetSpacing(likeSpacing);  
   output->SetOrigin(likeOrigin);
+  output->Allocate(); // Needed ?
 
   // get startpoint source/dest
   // for each dim
@@ -199,6 +199,7 @@ GenerateOutputInformation() {
   for(int i=0; i<ImageType::ImageDimension; i++)
     s[i] = m_StopSourceIndex[i]-m_StartSourceIndex[i];
   m_Region.SetSize(s);
+
 }
 //--------------------------------------------------------------------
    
@@ -212,12 +213,14 @@ GenerateData() {
 
   // Get output pointer, fill with Background
   ImagePointer output = this->GetOutput(0);
-  output->Allocate();
+  
   output->FillBuffer(GetBackgroundValue());
   
   // Paste image inside
   typedef itk::PasteImageFilter<ImageType,ImageType> PasteFilterType;
   typename PasteFilterType::Pointer pasteFilter = PasteFilterType::New();
+  //pasteFilter->ReleaseDataFlagOn(); // change nothing ?
+  //  pasteFilter->InPlaceOn(); // makt it seg fault
   pasteFilter->SetSourceImage(input);
   pasteFilter->SetDestinationImage(output);
   pasteFilter->SetDestinationIndex(m_StartDestIndex);
@@ -225,7 +228,6 @@ GenerateData() {
   pasteFilter->Update();
 
   // Get (graft) output (SetNthOutput does not fit here because of Origin).
-  //  this->GraftOutput(cropFilter->GetOutput());
   this->GraftOutput(pasteFilter->GetOutput());
 }
 //--------------------------------------------------------------------