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

Opencv , CvSeq , координаты контура. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
23.04.2012, 12:55     Opencv , CvSeq , координаты контура. #1
Здравствуйте форумчане.

Может ктото знает как найти координаты контура (крайние точки ну или центр) в Opencv.

Координаты получаю с помощью функции:
C++
1
int cvFindContours(CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0, 0))
CvSeq и есть сама структура контура:
C++
1
2
3
4
5
typedef struct CvSeq
{
    CV_SEQUENCE_FIELDS()
}
CvSeq;
C++
1
2
3
4
5
6
7
8
9
10
#define CV_SEQUENCE_FIELDS()                                              \
    CV_TREE_NODE_FIELDS(CvSeq);                                           \
    int       total;          /* Total number of elements.            */  \
    int       elem_size;      /* Size of sequence element in bytes.   */  \
    schar*    block_max;      /* Maximal bound of the last block.     */  \
    schar*    ptr;            /* Current write pointer.               */  \
    int       delta_elems;    /* Grow seq this many at a time.        */  \
    CvMemStorage* storage;    /* Where the seq is stored.             */  \
    CvSeqBlock* free_blocks;  /* Free blocks list.                    */  \
    CvSeqBlock* first;        /* Pointer to the first sequence block. */
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 12:55     Opencv , CvSeq , координаты контура.
Посмотрите здесь:

C++ Даны координаты вершин треугольника и координаты некоторой точки внутри него
C++ Мировые координаты и координаты устройства
Вычислительная геометрия (Даны координаты центра, R окружности, координаты точки вне окруж-ти. Найти точку пересечения одной из касательных с окруж-ю) C++
Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты C++
Заданы координаты точки подвеса математического маятника A(xa, ya, za) и координаты одной из точек его наивысшего подъема B(xb, yb, zb). Найти координ C++
C++ Поиск отрицательного цикла (контура) в графе
Построение контура в графе C++
Вычислить период колебаний контура по формуле Томпсона C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SiriusAlpfa
0 / 0 / 0
Регистрация: 27.10.2014
Сообщений: 3
03.12.2016, 17:34     Opencv , CvSeq , координаты контура. #2
C#
1
2
3
4
5
6
7
8
for (CvSeq<OpenCvSharp.CvPoint> seq0 = contours_original; seq0 != null; seq0 = seq0.HNext)
            {
                CvPoint2D32f point;
                float rad;
                Cv.MinEnclosingCircle(seq0, out point, out rad);
                Cv.PutText(rgb, counter.ToString(), point, new CvFont(FontFace.HersheySimplex, 1, 1, 1, 2, LineType.Link8), CvColor.Red);
                counter++;
            }
Код на шарпе но переделать несложно. Суть - обходишь все контуры и в point записываешь центр описанной вокруг конкретного контура окружности. И в этом центре выводишь индекс контура
Yandex
Объявления
03.12.2016, 17:34     Opencv , CvSeq , координаты контура.
Ответ Создать тему
Опции темы

Текущее время: 13:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru