Preenchendo buracos dentro de um objeto binário

Eu tenho um problema com o preenchimento de buracos brancos dentro de moedas pretas para que eu possa ter apenas 0-255 imagem binária com moedas pretas cheias .. Eu usei filtro Median para realizá-lo, mas nesse caso ponte de conexão entre moedas cresce e é impossível para reconhecê-los depois de várias épocas de erosão ... Então, eu preciso de um método floodFill simples em opencv

Aqui está a minha imagem com buracos:

EDITAR: A função do tipo floodfill deve preencher buracos em componentes grandes sem avisar as coordenadas X, Y como uma semente ...

EDIT: eu tentei usar a função cvDrawContours, mas eu não preenche os contornos dentro dos maiores.

Aqui está o meu código:

<code>        CvMemStorage mem = cvCreateMemStorage(0);
        CvSeq contours = new CvSeq();
        CvSeq ptr = new CvSeq();
        int sizeofCvContour = Loader.sizeof(CvContour.class);

        cvThreshold(gray, gray, 150, 255, CV_THRESH_BINARY_INV);

        int numOfContours = cvFindContours(gray, mem, contours, sizeofCvContour, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
        System.out.println("The num of contours: "+numOfContours); //prints 87, ok

        Random rand = new Random();
        for (ptr = contours; ptr != null; ptr = ptr.h_next()) {
            Color randomColor = new Color(rand.nextFloat(), rand.nextFloat(), rand.nextFloat());
            CvScalar color = CV_RGB( randomColor.getRed(), randomColor.getGreen(), randomColor.getBlue());
            cvDrawContours(gray, ptr, color, color, -1, CV_FILLED, 8);
        }
        CanvasFrame canvas6  = new CanvasFrame("drawContours");
        canvas6.showImage(gray);
</code>

Resultado: (você pode ver buracos negros dentro de cada moeda)

questionAnswers(7)

yourAnswerToTheQuestion