Обнаружение контура - PullRequest
       9

Обнаружение контура

2 голосов
/ 11 ноября 2010

Я хочу обнаружить область (ЖК-экран), которая содержит несколько цифровых номеров, и я пытаюсь сделать следующее: 1. используйте cvCanny (), чтобы преобразовать изображение в изображение края, 2. используйте cvFindContours () для определения контура, здесь я использую режим TREE 3. определить каждый контур и количество его детей, если число детей превышает определенное число в сочетании с областью контура и соотношением сторон, то есть той областью, которая меня интересует. Моя проблема в том, что я использую цикл for (; contours! = NULL; contours = contours-> h_next), но я могу получить только самый верхний уровень дерева и его прямое число дочерних элементов, остальное кажется не включенным таким образом, есть ли в любом случае, что я могу пройти через каждый контур и получить общее количество детей?

Спасибо!

1 Ответ

4 голосов
/ 11 ноября 2010

То, что вы ищете, это contours->v_next. Используется для доступа к дочерним контурам контура. h_next используется для повторения контуров на одном уровне. Возможно, вы уже догадались, что h означает горизонтальный , а v означает вертикальный .

Конечно, при использовании cvFindContours() обязательно используйте его с методом CV_RETR_TREE для получения контуров в виде дерева.

...