Как получить значение радиуса окружности

Для преобразования круга Хафа, когда я обнаружил круг, как я могу получить значение радиуса круга и центральную точку? Я делаю систему распознавания радужной оболочки глаза.

CvSeq* circles = cvHoughCircles(grayscaleImg,
                     storage,
                     CV_HOUGH_GRADIENT,
                     2,
                     grayscaleImg->height/4,
                     200,
                 100 );

for (i = 0; i < circles->total; i++) 
{
     float* p = (float*)cvGetSeqElem( circles, i );
     cvCircle( capturedImg, cvPoint(cvRound(p[0]),cvRound(p[1])), 
        3, CV_RGB(0,255,0), -1, 8, 0 );
     cvCircle( capturedImg, cvPoint(cvRound(p[0]),cvRound(p[1])), 
         cvRound(p[2]), CV_RGB(0,0,255), 3, 8, 0 );
}

person Din Hee    schedule 06.10.2012    source источник
comment
Что такое cvRound, cvCircle? Что семантически возвращает cvGetSeqElem?   -  person Synxis    schedule 06.10.2012
comment
извините, я кое-что пропустил, он используется для поиска круга и его центральной точки на изображении.   -  person Din Hee    schedule 06.10.2012
comment
Ваш код уже работает с координатами центра и радиусом.   -  person Andrey Kamaev    schedule 06.10.2012
comment
Я не понимаю. Вы рисуете круги здесь с центральными точками и радиусом. И вы не можете их найти?   -  person Tae-Sung Shin    schedule 06.10.2012
comment
Да, я понимаю, но я хочу показать значение радиуса, которое было найдено на экране. Например, «круг имеет радиус 5 мм в точке (5.0,4.0)!!! 'на экране.   -  person Din Hee    schedule 07.10.2012
comment
до этого я использую cvPutText, но не могу преобразовать cvpoint в char. Следовательно, перед этим мне нужно сделать какое-либо преобразование?   -  person Din Hee    schedule 07.10.2012
comment
Чувак, соберись с мыслями и перепиши свой вопрос. Это поможет вам и нам найти ответ.   -  person Tae-Sung Shin    schedule 07.10.2012
comment
Используйте itoa для преобразования целого числа в строку. cplusplus.com/reference/clibrary/cstdlib/itoa   -  person Matthew Hooker    schedule 08.10.2012
comment
Да, я хочу преобразовать целое число в строку. Однако, поскольку значение, которое я получаю в cvRound, имеет целочисленный тип данных, мне нужно преобразовать его в строку для использования в cvPutText. Спасибо, Мэтью.   -  person Din Hee    schedule 08.10.2012


Ответы (1)


Центральная точка: cvPoint(cvRound(p[0]),cvRound(p[1]))

Радиус: cvRound(p[2])

person Tae-Sung Shin    schedule 06.10.2012