#include "bbUtilitiesHistogram.h" #include "bbUtilitiesPackage.h" namespace bbUtilities { BBTK_ADD_BLACK_BOX_TO_PACKAGE(Utilities,Histogram) BBTK_BLACK_BOX_IMPLEMENTATION(Histogram,bbtk::AtomicBlackBox); //BBTK_USER_BLACK_BOX_IMPLEMENTATION(Histogram,bbtk::AtomicBlackBox); void Histogram::Process() { //imagen if(img == NULL) { img = bbGetInputInImage(); } else { img=vtkImageData::New(); img = bbGetInputInImage(); } //puntos if(points == NULL) { points = vtkImageData::New(); } else { points->Delete(); points=vtkImageData::New(); } std::vector< double > x; std::vector< double > y; /* Pointers */ unsigned short* dataImagePointer=NULL; unsigned short* dataHistogramPointer=NULL; /* Range of greys */ double range[2]; if(img==NULL) range[1]=1; else img->GetScalarRange(range); /* Setting the minimun and maximum levels of grey */ int maxLevelOfGrey=(int)range[1]; int minLevelOfGrey=(int)range[0]; //alistando a points points->SetDimensions(maxLevelOfGrey-minLevelOfGrey,1,1); points->SetScalarTypeToUnsignedShort(); points->AllocateScalars(); points->Update(); dataHistogramPointer=(unsigned short*)points->GetScalarPointer(0,0,0); for(int i = 0; i < maxLevelOfGrey - minLevelOfGrey+1;i++){ x.push_back(i+minLevelOfGrey); y.push_back(0); } /* Image Size */ int ext[6]; img->GetExtent(ext); int sx,sy,sz; sx=ext[1]-ext[0]+1; sy=ext[3]-ext[2]+1; sz=ext[5]-ext[4]+1; int sizeImage=sx*sy*sz; int i; /* getting ready the histogram */ for(i=0;iGetScalarPointer(); int j=0; for(i=0;i