*   >> Leitura Educação Artigos >> science >> programação

Conectado filtragem Components

Em outro artigo, aprendemos como extrair componentes conectados usando OpenCV e como a algumas das operações comuns. Agora eu vou falar sobre outra tarefa útil e comum: a filtragem de componentes ligados ao extrair apenas aqueles que passam a determinados critérios. E para tornar as coisas mais genérico, os critérios serão definidos pelo chamador usando ponteiros de função. Revisitando OpenCVOpenCV é uma biblioteca de processamento legal visão computacional e de imagem que é amplamente utilizado e oferece muitas características boas.

Vamos usá-lo para extrair e filtrar os componentes conectados a partir de uma imagem. Revisitando a extração de componentes Connected Podemos extrair os componentes ligados de uma imagem utilizando a função cvFindContours como descrito aqui. Ele armazena os contornos dos componentes conectados em uma lista de seqüências. Cada seqüência contém os pontos de um polígono que se aproxima que contorno e podemos navegar nesta lista de seqüências usando os h_next, h_prev, v_next e v_prev ponteiros.

CvSeq: Sequências de tipo OpenCV O CvSeq é uma sequência em OpenCV e é usado para armazenar os contornos dos componentes ligados. Desde que irá filtrar os componentes ligados, por isso precisamos de uma maneira para excluir um contorno da lista. A função cvSeqRemove remove elementos de uma seqüência, mas não remove uma seqüência inteira de nossa lista de contorno. Para remover uma seqüência da lista temos de mexer com os h_next e h_prev ponteiros. Se queremos remover o primeiro elemento só precisamos fazer o ponto ponteiro contornos ao segundo elemento.

Para remover um elemento no meio da lista de nós "saltar" o a partir da sequência. O procedimento é simples e inteligente: se queremos remover o X

elemento fazemos o ponteiro h_next do ponto elemento anterior ao que depois de

X eo h_prev do próximo ponto elemento ao elemento antes de X

.

Assim como esta:

  ptr-> h_prev-> h_next = ptr-> h_next; if (ptr-> h_next = NULL!) ptr-> h_next-> h_prev = ptr-> h_prev; 

É claro que precisamos de verificar se X

tem alguém atrás dele, por isso, não correr em algumas falhas de segmentação

remover o último elemento. Definir uma função critérios personalizados usando ponteiros de função Para fazer os critérios de filtragem genéricos vamos usar ponteiros de função. A idéia é apresentar um contorno de uma função de critérios que aceita ou rejeita um contorno.

Se o contorno for rejeitad

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.