Salut tout le monde,
j'ai une question probablement bête (sinon j'aurai déjà trouvé ma réponse dans les archives de Developpez ou de StackOverFlow ) mais j'ignore comment obtenir l'index d'un point depuis le CvSeq obtenu par un cvFindContours.

J'avais pensé à réaliser une IplImage de blobs colorés pour chaque holes en partant d'une image binaire afin de pouvoir comparer rapidement chaque point selon la valeur du pixel mais... quelque chose semble m'échapper

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
IplImage *imgTemp = cvCreateImage(cvGetSize(getMorph()), (getMorph())->depth, 1);
        CvMemStorage *mem = cvCreateMemStorage();
        cvConvertImage(getMorph(), imgTemp);
        CvSeq *contours = NULL;
        cvFindContours(imgTemp, mem, &contours, sizeof(CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_NONE);
 
        int colIt=255;
        for (CvSeq *ptr = contours; ptr != NULL; ptr = ptr->h_next) {
            if(ptr->v_next != NULL)
            {
                CvScalar color = CV_RGB( colIt,colIt,colIt);
                cvDrawContours(imgTemp, ptr->v_next, color, color, -1, CV_FILLED, 100);
                --colIt;
            }
        }