X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkRescaleSlopeIntercept.cxx;h=cb1a77050240e041c2764afd6d908b74d0d23f95;hb=0c2a59d5ac18086c50a0b5e7351b18cad876b905;hp=911d6626c66cbce1b5d25077fb9b6f961ddfa889;hpb=6adcfa9cb22b26df2122aa7bfef931a3bb847486;p=bbtk.git diff --git a/packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx b/packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx index 911d662..cb1a770 100644 --- a/packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx +++ b/packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx @@ -92,12 +92,17 @@ void RescaleSlopeIntercept::Process() shift= A + (range[1]*newdifrange/difrange); } // if type 3 - filter->SetInput( bbGetInputIn() ); - filter->SetOutputScalarType( outputformat ); - filter->SetScale( scale ); - filter->SetShift( shift ); + filter1->SetInput( bbGetInputIn() ); + filter1->SetOutputScalarType( VTK_DOUBLE ); + filter1->SetShift( 0 ); + filter1->SetScale( scale ); - mchange->SetInput( filter->GetOutput() ); + filter2->SetInput( filter1->GetOutput() ); + filter2->SetOutputScalarType( outputformat ); + filter2->SetShift( shift ); + filter2->SetScale( 1 ); + + mchange->SetInput( filter2->GetOutput() ); mchange->SetExtentTranslation( -ext[0], -ext[2], -ext[4] ); mchange->SetOutputSpacing (spc); mchange->Update(); //important @@ -121,7 +126,8 @@ void RescaleSlopeIntercept::bbUserSetDefaultValues() bbSetInputB(0); bbSetInputOutputFormat("SAME"); - filter = NULL; + filter1 = NULL; + filter2 = NULL; mchange = NULL; } //===== @@ -135,7 +141,8 @@ void RescaleSlopeIntercept::bbUserInitializeProcessing() // but this is where you should allocate the internal/output pointers // if any - filter = vtkImageShiftScale::New(); + filter1 = vtkImageShiftScale::New(); + filter2 = vtkImageShiftScale::New(); mchange = vtkImageChangeInformation::New(); @@ -151,7 +158,8 @@ void RescaleSlopeIntercept::bbUserFinalizeProcessing() // but this is where you should desallocate the internal/output pointers // if any mchange->Delete(); - filter->Delete(); + filter1->Delete(); + filter2->Delete(); } }