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

Conectado filtragem Components

o, então, removê-lo da nossa lista de contornos. No final, apenas os contornos aceites permanecerá e devolvê-lo. Você pode aprender mais sobre ponteiros de função aqui. O protótipo da função de critérios será: critérios int (* CvSeq contorno);

Codificação o exemplo: filtragem e extrair os componentes conectados

Agora vamos codificar a função que irá fazer o trabalho . Vou postar o código da função abaixo aqui, o código de trabalho completo está disponível no final do artigo.


  CvSeq * extract_and_filter_CC (IplImage * img, int (* critérios ) (CvSeq *)) {


CvSeq * contornos, * ptr; CvMemStorage * mem = cvCreateMemStorage

(0);

cvFindContours (img, mem, e contornos, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint (0,0)); PTR = contornos; while (ptr = NULL!) {if (critérios (PTR) == 0) {if (ptr == contornos) {contornos = ptr-> h_next; PTR = contornos; ptr-> h_prev = NULL; } Else {ptr-> h_prev-> h_next = ptr-> h_next; if (ptr-> h_next = NULL!) ptr-> h_next-> h_prev = ptr-> h_prev; ptr = ptr-> h_next; }} Else {ptr = ptr-> h_next;

}} retornar contornos; }

Um exemplo de uso Neste exemplo eu vou lhe mostrar uma função simples que filtra os componentes com base na sua relação , recebendo apenas os componentes que são quase quadrado conectado.


  int quadrado (CvSeq * contorno) {CvRect caixa = cvBoundingBox (contorno); if (caixa-> w /caixa-> HW /caixa-> h> 0,4) return 1; retornar 0;} 


Nós chamamos a função extract_and_filter_CC como este: filtered_cc = extract_and_filter_CC (img, quadrado);

Conclusão Este artigo descreve outro aplicação de componentes conectados: para filtrar as partes da imagem que não se encaixam em um determinado critério. Ele também usa ponteiros de função para fazer a filtragem tão genérica quanto possível.

Esta técnica é muito potente e pode ser usado em conjunto com outras técnicas para remover o ruído ou uma imagem para extrair as partes especiais do imagem. O código de trabalho completo com comentários está disponível aqui.

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