points = vtkImageData::New();
size = 100;
sizeImage = 0;
- //cast
- /*
- vtkImageCast* cast= vtkImageCast::New();
- cast->SetInput(imageData);
- cast->SetOutputScalarTypeToInt();
- cast->Update();
- */
- //build the histogram
buildHistogram(imageData);
}
unsigned short* dataImagePointerUS = (unsigned short*)imageData->GetScalarPointer(0,0,0);
float* dataImagePointerF = (float*)imageData->GetScalarPointer(0,0,0);
double* dataImagePointerD = (double*)imageData->GetScalarPointer(0,0,0);
-
- double* dataHistogramPointer = (double*)points->GetScalarPointer(0,0,0);
+ double* dataHistogramPointer = (double*)points->GetScalarPointer(0,0,0);
/*
Range of greys
int ext[6];
imageData->GetExtent(ext);
int sx,sy,sz;
- sx=ext[1]-ext[0]+1;
- sy=ext[3]-ext[2]+1;
- sz=ext[5]-ext[4]+1;
+ sx = ext[1]-ext[0]+1;
+ sy = ext[3]-ext[2]+1;
+ sz = ext[5]-ext[4]+1;
sizeImage=sx*sy*sz;
dataHistogramPointer[i]=0;
}
- int j=0;
+ long int j=0;
if (imageData->GetScalarType()==VTK_CHAR)
*/
int pHistogram::getIndex(double gValue)
{
-
- double p=((double)gValue-minLevelOfGrey)/(maxLevelOfGrey-minLevelOfGrey);
+ double p;
+ double diff=maxLevelOfGrey-minLevelOfGrey;
+ if (diff!=0)
+ {
+ p=((double)gValue-minLevelOfGrey)/(maxLevelOfGrey-minLevelOfGrey);
+ } else {
+ p=0;
+ }
double k=p*(size-1);
//std::cout<<"gValue "<<gValue<<" k "<<k<<std::endl;
return (int)k;