*   >> Lectura Educación Artículos >> science >> programación

Filtrado Conectado Components

ontorno a una función de criterios que acepta o rechaza un contorno. Si el contorno es rechazada entonces eliminemos de nuestra lista de contornos. Al final sólo los contornos aceptadas permanecerán y nos lo devuelve. Usted puede aprender más acerca de los punteros de función aquí. El prototipo de la función de los criterios será: Criterios int (* CvSeq contorno);

Codificación el ejemplo: filtrado y extracción de los componentes conectados

Ahora vamos a codificar la función que hará el trabajo .

Voy a publicar el código de la función debajo de aquí, el código de trabajo completa está disponible al final del artículo.

  CvSeq * extract_and_filter_CC (IplImage * img, int (* criterios ) (CvSeq *)) {


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

(0);

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

}} return contornos; }

Un ejemplo de uso En este ejemplo voy a mostrar una simple función que filtra los componentes en función de su relación , consiguiendo solamente conectado componentes que son casi cuadrada.


  int cuadrado (CvSeq * contorno) {CvRect cuadro = cvBoundingBox (contorno); si (caja-> w /caja-> hw /caja-> h> 0,4) return 1; return 0;} 


Llamamos a la función extract_and_filter_CC así: filtered_cc = extract_and_filter_CC (img, cuadrado);

Conclusión En este artículo se describe otro aplicación de los componentes conectados: filtrar partes de la imagen que no encajan en un cierto criterio. También utiliza punteros de función para hacer el filtrado de lo más genérico posible.

Esta técnica es muy potente y puede ser utilizado en conjunción con otras técnicas para eliminar el ruido de una imagen o para extraer partes especiales de la imagen. El código de trabajo completo con comentarios está disponible aquí.

Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lectura Educación Artículos,https://lectura.nmjjxx.com All rights reserved.