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

Filtrado Conectado Components

En otro artículo hemos aprendido cómo extraer componentes conectados usando OpenCV y cómo a algunas operaciones comunes. Ahora voy a hablar de otra tarea útil y común: el filtrado de los componentes conectados a extraer sólo aquellos que pasan un cierto criterio. Y para hacer las cosas más genérico, los criterios serán definidos por la persona que llama utilizando punteros de función. Revisitando OpenCVOpenCV es una biblioteca de procesamiento fresca visión por ordenador y la imagen de que es ampliamente utilizado y ofrece muchas buenas características.

Lo utilizaremos para extraer y filtrar los componentes conectados de una imagen. Revisando la extracción componente conectado Podemos extraer los componentes conectados de una imagen mediante la función cvFindContours como se describe aquí. Almacena los contornos de los componentes conectados en una lista de secuencias. Cada secuencia contiene los puntos de un polígono que se aproxima al contorno y que puede navegar esta lista de secuencias utilizando los punteros h_next, h_prev, v_next y v_prev.

CvSeq: Secuencias de tipo OpenCV El CvSeq es una secuencia en OpenCV y se utiliza para almacenar los contornos de los componentes conectados. Desde vamos a filtrar los componentes conectados, por lo que necesitamos una manera de eliminar un contorno de la lista. La función cvSeqRemove elimina elementos de una secuencia, pero no elimina una secuencia completa de nuestra lista de contorno. Para eliminar una secuencia de la lista hay que meterse con los punteros h_next y h_prev. Si queremos eliminar el primer elemento sólo tenemos que hacer el punto puntero contornos al segundo elemento.

Para eliminar un elemento de la mitad de la lista que "saltar" de él de la secuencia. El procedimiento es simple e inteligente: si queremos quitar el X

elemento hacemos el puntero h_next del punto elemento previo a la una después de X

y h_prev del punto siguiente elemento al elemento antes de X

.

Al igual que esta:

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

Por supuesto que tenemos que comprobar si X

tiene a alguien detrás de él, por lo que no se ejecutan en algunos Fallos Segmentación

eliminar el último elemento. Definir una función de criterios personalizados utilizando punteros de función Para que los criterios de filtrado genéricos vamos a utilizar punteros de función.

La idea es presentar un c

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