Program: bbtk
Module: $RCSfile: bbitkImageProperties.cxx,v $
Language: C++
- Date: $Date: 2008/10/17 08:18:21 $
- Version: $Revision: 1.6 $
+ Date: $Date: 2011/03/04 08:33:59 $
+ Version: $Revision: 1.15 $
=========================================================================*/
/* ---------------------------------------------------------------------
#include "bbitkImageProperties.h"
#include "bbitkPackage.h"
-
-
+#include "itkMinimumMaximumImageFilter.h"
namespace bbitk
{
BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageProperties);
+ //-----------------------------------------------------------------
+ void ImageProperties::bbUserSetDefaultValues()
+ {
+ }
+ //-----------------------------------------------------------------
+ void ImageProperties::bbUserInitializeProcessing()
+ {
+ }
+ //-----------------------------------------------------------------
+ void ImageProperties::bbUserFinalizeProcessing()
+ {
+ }
void ImageProperties::DoIt()
{
BBTK_TEMPLATE_ITK_IMAGE_SWITCH(bbGetInputIn().type(),DoIt);
}
-
-
/**
Template Processing
*/
<<bbtk::TypeName<itkImageType>()
<<">()"<<std::endl);
-
- itkImageType* im = bbGetInputIn().get<itkImageType*>();
+ itkImageType* im = bbGetInputIn().get<itkImageType*>();
unsigned int dim = im->GetImageDimension();
bbSetOutputTypeName(bbtk::TypeName<typename itkImageType::PixelType>());
const typename itkImageType::IndexType& ind = r.GetIndex();
std::vector<int> vind;
- for (unsigned int i=0;i<dim;++i) vind.push_back(ind[i]);
+ for (unsigned int i=0;i<dim;++i)
+ vind.push_back(ind[i]);
bbSetOutputIndex(vind);
const typename itkImageType::SizeType& sz = r.GetSize();
std::vector<int> vsz;
- for (unsigned int i=0;i<dim;++i) vsz.push_back(sz[i]);
+ for (unsigned int i=0;i<dim;++i)
+ vsz.push_back(sz[i]);
+
+ // brute hack to avoid failure of most black boxes that expects 3D images. // JPR
+ if (dim==2)
+ vsz.push_back(1);
bbSetOutputSize(vsz);
typename itkImageType::SpacingType sp = im->GetSpacing();
std::vector<float> vsp;
- for (unsigned int i=0;i<dim;++i) vsp.push_back(sp[i]);
+ for (unsigned int i=0;i<dim;++i)
+ vsp.push_back(sp[i]);
+
+ // brute hack to avoid failure of most black boxes that expects 3D images. // JPR
+ if (dim==2)
+ vsp.push_back(1.0);
+
bbSetOutputSpacing(vsp);
+
+ // Min Max Value // EED
+ std::vector<float> vminmax;
+ typedef itk::MinimumMaximumImageFilter< itkImageType > MinMaxFilterType;
+ typename MinMaxFilterType::Pointer minMaxCalculator = MinMaxFilterType::New();
+ minMaxCalculator->SetInput(im);
+ minMaxCalculator->Update();
+ vminmax.push_back( (float) (minMaxCalculator->GetMinimum()) );
+ vminmax.push_back( (float) (minMaxCalculator->GetMaximum()) );
+ bbSetOutputMinMax(vminmax);
+
bbtkDebugDecTab("Core",9);
}
-
-
-
-
-
-
}
// eo namespace bbtk