//void Preprocess::MinErrorThresholding(float *alpha_B, float *alpha_A, float *P_I) void Preprocess::MinErrorThresholding(float *alpha_B, float *alpha_A, float *P_I, bool overwrite) { //Binarize typedef itk::MinErrorThresholdImageFilter< ImageType3D, ImageType3D > FilterType; FilterType::Pointer filter = FilterType::New(); filter->SetInput( myImg ); filter->SetNumberOfHistogramBins(256); try { filter->Update(); } catch( itk::ExceptionObject & err ) { std::cerr << "ITK FILTER ERROR: " << err << std::endl; } *alpha_B = (float)filter->GetAlphaLeft(); *alpha_A = (float)filter->GetAlphaRight(); *P_I = (float)filter->GetPriorLeft(); if(overwrite) myImg = filter->GetOutput(); }