работа с контурами OpenCV

Здравствуйте, написал код определяющий нужные мне контуры:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .cpp.geshi_code {font-family:monospace;} .cpp.geshi_code .imp {font-weight: bold; color: red;} .cpp.geshi_code .kw1 {color: #0000ff;} .cpp.geshi_code .kw2 {color: #0000ff;} .cpp.geshi_code .kw3 {color: #0000dd;} .cpp.geshi_code .kw4 {color: #0000ff;} .cpp.geshi_code .co1 {color: #666666;} .cpp.geshi_code .co2 {color: #339900;} .cpp.geshi_code .coMULTI {color: #ff0000; font-style: italic;} .cpp.geshi_code .es0 {color: #000099; font-weight: bold;} .cpp.geshi_code .es1 {color: #000099; font-weight: bold;} .cpp.geshi_code .es2 {color: #660099; font-weight: bold;} .cpp.geshi_code .es3 {color: #660099; font-weight: bold;} .cpp.geshi_code .es4 {color: #660099; font-weight: bold;} .cpp.geshi_code .es5 {color: #006699; font-weight: bold;} .cpp.geshi_code .br0 {color: #008000;} .cpp.geshi_code .sy0 {color: #008000;} .cpp.geshi_code .sy1 {color: #000080;} .cpp.geshi_code .sy2 {color: #000040;} .cpp.geshi_code .sy3 {color: #000040;} .cpp.geshi_code .sy4 {color: #008080;} .cpp.geshi_code .st0 {color: #FF0000;} .cpp.geshi_code .nu0 {color: #0000dd;} .cpp.geshi_code .nu6 {color: #208080;} .cpp.geshi_code .nu8 {color: #208080;} .cpp.geshi_code .nu12 {color: #208080;} .cpp.geshi_code .nu16 {color:#800080;} .cpp.geshi_code .nu17 {color:#800080;} .cpp.geshi_code .nu18 {color:#800080;} .cpp.geshi_code .nu19 {color:#800080;} .cpp.geshi_code .me1 {color: #007788;} .cpp.geshi_code .me2 {color: #007788;} .cpp.geshi_code span.xtra { display:block; }

#include <cv.h>
#include <highgui.h>
#include <stdlib.h>
#include <stdio.h>
 
 
int main()
{
    IplImage* image = cvLoadImage( "Img.jpg", 1);
 
    //Создаем изображение в градациях серого
    IplImage* img_gray= cvCreateImage( cvSize(image->width,image->height), 8, 1);
    CvSeq* contours = 0;
    CvMemStorage* storage = cvCreateMemStorage(0);
    cvCvtColor( image, img_gray, CV_BGR2GRAY );
    cvCanny(img_gray, img_gray, 45, 200);
    cvFindContours( img_gray, storage, &contours, sizeof(CvContour),
        CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) );
    cvDrawContours( image, contours, CV_RGB(255,0,0), CV_RGB(0,255,0),2, 1, CV_AA,
        cvPoint(0,0) );
    CvSeq* h_next=0;
    for( CvSeq* c=contours; c!=NULL; c=c->h_next )
    {
        if (c!=contours)
        {
            if (c->total<=100) //размер удаляемых контуров
            {
                //удаляем мелкие контуры
                h_next->h_next=h_next->h_next->h_next;
                continue;
            }
        }
        h_next=c;
    }
    if (contours->total<=100) contours=contours->h_next;
 
    cvNamedWindow("Object", 1);
    cvShowImage( "Object", image);
    cvWaitKey(0);
}
 

Как вытащить координаты нескольких случайных точек принадлежащих этим контурам?

1 ответов