// ------------------------------------------------------------------------
void computeProbImage(const PatchParams &params, unsigned int pnum,
                      unsigned int id, std::string type, ClassifierMap &classifiers,
                      const ValveType::Pointer &valve, const LabelType::Pointer &mask, RealImageType::Pointer &output)
{
    output = RealImageType::New();
    output->SetDirection(mask->GetDirection());
    output->SetSpacing(mask->GetSpacing());
    output->SetOrigin(mask->GetOrigin());
    output->SetRegions(mask->GetLargestPossibleRegion());
    output->Allocate();
    output->FillBuffer(0);

    itk::ImageRegionIterator<LabelType> maskIt(mask, mask->GetLargestPossibleRegion());
    itk::ImageRegionIterator<RealImageType> probIt(output, output->GetLargestPossibleRegion());

    unsigned int count = 0;
    while(!maskIt.IsAtEnd())
    {
        if(maskIt.Get() == 255)
        {
            IndexType index = maskIt.GetIndex();
            PointType point;
            output->TransformIndexToPhysicalPoint(index, point);

            MatrixType feature;
            extractLBPFeature(params, valve, point, feature);

            MatrixType probs;
            IntMatrixType classes;
            classifiers["MV-"+type][pnum]->PredictProbability(feature, classes, probs);

            probIt.Set(probs(0,1));

            count++;
        }


        ++maskIt;
        ++probIt;
    }



}