*   >> Чтение Образование Статьи >> science >> programming

Фильтрация связи Components

В другой статье мы узнали, как извлечь связные компоненты с помощью OpenCV и как некоторые общие операции. Теперь я буду говорить о другой полезной и общую задачу: фильтрация, связанные компоненты для извлечения только тех, которые проходят определенные критерии. И, чтобы сделать вещи более общий, критерии будут определены абонентом, использующим указатели на функции. Пересмотр OpenCVOpenCV это круто компьютерное зрение и библиотеки изображений обработки, который широко используется и предлагает много хороших возможностей.

Мы будем использовать его для извлечения и фильтрации связные компоненты из образа. Пересмотр добыча подключенного компонента Мы можем извлечь связные компоненты изображения с помощью функции cvFindContours, как описано здесь. Он хранит контуры подключенных компонентов в списке последовательностей. Каждая последовательность содержит точки многоугольника, что приближается к контуру, и мы можем перейти этот список последовательностей с использованием h_next, h_prev, v_next и v_prev указатели.

CvSeq: Последовательности в OpenCV типа CvSeq последовательность в OpenCV и будет использоваться для хранения контуры подключенных компонентов. Так как мы будем фильтровать подключенных компонентов, так что мы должны способ, чтобы удалить контур из списка. Функция cvSeqRemove удаляет элементы из последовательности, но это не удалить всю последовательность из нашего списка контура. Чтобы удалить последовательность из списка мы должны возиться с h_next и h_prev указателей. Если мы хотим, чтобы удалить первый элемент, мы просто должны сделать точку указатель контуры второго элемента.

Чтобы удалить элемент в середине списка мы "прыгать" его из последовательности. Процедура проста и умный: если мы хотим, чтобы удалить X

элемент мы делаем h_next указатель предыдущей точки элемента в одном после X

и h_prev следующего элемента точки к элементу перед X

. Так же, как это:

  ptr-> h_prev-> h_next = ptr-> h_next; если (ptr-> h_next! = NULL) ptr-> h_next-> h_prev = ptr-> h_prev; 

<р> Конечно, мы должны проверить, если X

имеет кто-то за ним, так что мы не работать в некоторых ошибки сегментации

удаления последнего элемента.

Определение функции пользовательских критериев, используя указатели на функции, чтобы сделать критерии фильтрации общие мы будем использовать указатели на функции. Идея состоит в том, чтобы представить контур с функцией критериев, которые принимает или отклоняет контур. Есл

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.