Форум программистов, компьютерный форум CyberForum.ru

С++ под Linux

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
raging
0 / 0 / 0
Регистрация: 31.01.2014
Сообщений: 3
#1

[OpenCV] Выделение кругов и работа с ними - C++ Linux

27.02.2014, 12:39. Просмотров 1568. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток!
В ходе работы с OpenCV на Raspberry Pi возник вопрос:
Я нахожу круги на изображении используя cvHoughCircles, затем в примере также была функция отрисовки кругов на изображении, но как работать с ними (получить координаты центра, посчитать радиус, диаметр в пикселях и т.п.) я не понимаю. Результат возвращается в некий CvSeq* result, но вроде бы есть и само хранилище для этих кругов CvMemStorage* storage. Просьба помочь разобраться и/или ткнуть где можно почитать.

Отрывок исходника, если нужно предоставлю весь:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//////////////////////////////////////Выделение кругов/////////////////////////////
        // хранилище памяти для кругов
        CvMemStorage* storage = cvCreateMemStorage(0);
        // сглаживаем изображение
        cvSmooth(dst, dst, CV_GAUSSIAN, 7, 7 );
        // поиск кругов
        CvSeq* results = cvHoughCircles( 
                dst, 
                storage, 
                CV_HOUGH_GRADIENT, 
                3, 
                image->width*6,
                7,
                100,
                image->width/7,
                image->width/4-10
                ); 
        // пробегаемся по кругам и рисуем их на оригинальном изображении
     for( int i = 0; i < results->total; i++ ) {
                float* p = (float*) cvGetSeqElem( results, i );
                
                CvPoint pt = cvPoint( cvRound( p[0] ), cvRound( p[1] ) );
                cvCircle( dst, pt, cvRound( p[2] ), CV_RGB(255,255,255) );
        }
     
                char c = cvWaitKey(33);
                if (c == 27) { // нажата ESC
                        break;
                }
Заранее спасибо

Добавлено через 22 часа 14 минут
Все оказалось несколько проще, чем думалось)
В случае если кому-нибдуь нужно решение - обращайтесь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 12:39     [OpenCV] Выделение кругов и работа с ними
Посмотрите здесь:

C++ Linux На компьютере с двумя сет.интерфейсами, передать Udp пакет между ними
OpenCV WebCamera C++ Linux
C++ Linux с++ Opencv 2.4 Определение лица на изображении
C++ Linux eclipse opencv
C++ Linux Выделение памяти под структуры
Выделение памяти на уровне ядра C++ Linux
C++ Linux Ошибки компиляции OpenCV Gtkmm Glade
Выделение логических адресов процессу C++ Linux
C++ Linux Функция malloc() динамически увеличивает выделение памяти по мере необходимости?
В Code Blocks Не работает OpenCV C++ Linux
C++ Linux Отладка, выделение памяти

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AlenaAS0017
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 1
22.11.2016, 18:53     [OpenCV] Выделение кругов и работа с ними #2
Добрый вечер! Знаю тема уже была создана 2 года назад, но всё же. Я столкнулась с такое же проблемой. Хотелось бы узнать как вы смогли получить радиус.
Заранее спасибо
Yandex
Объявления
22.11.2016, 18:53     [OpenCV] Выделение кругов и работа с ними
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru