Como posso obter o círculo mínimo de fechamento com OPENCV?

estou a usarcv::minEnclosingCircle(...) para obter o círculo mínimo que evolui exatamente o meu contorno, mas estou ficando um círculo um pouco maior.

Em outras palavras, estou tentando obter algo assim:

https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Simple_concave_polygon_Min_Enclosing_Circle.svg/441px-Simple_concave_polygon_Min_Enclosing_Circle.svg.png

Mas eu estou entendendo isso (o círculo):

Observe como o círculo é um pouco maior que o item a ser fechado.

Eu preciso colocar meu objeto em um círculo, não em uma elipse.

Agradeço antecipadamente.

Este é o meu código:

cv::vector<cv::Point> allPixels;
    int columnas = img.cols, filas = img.rows;
    cv::Point pt;
    for(int col = 0; col < columnas; col++){
        for(int row = 0; row < filas; row++){

            int val = img.at<uchar>(row,col);

            if(val == 255){
                pt.x = col;
                pt.y = row;

                allPixels.push_back(pt);
            }
        }
    }

    cv::Mat dispImage = img.clone();
    cv::Point2f center;
    float radius;

    cv::minEnclosingCircle(allPixels,center,radius);

    cv::circle(dispImage,center,radius,cv::Scalar(128),1);
    cv::circle(dispImage,center,1,cv::Scalar(128),1);

    cv::imwrite("Enclosing_Result.png",dispImage);

Com 'img' a cv :: Mat com tamanho (760.760) e formato CV_8UC1. O resultado final ("Enclosing_Result.png") é o próximo:

E meu objetivo é o seguinte (desenhado):

questionAnswers(1)

yourAnswerToTheQuestion