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

Los componentes conectados mediante Opencv

RETR_CCOMP parámetro indica la función que los contornos de los componentes conectados deben extraer CV_CHAIN_APPROX_SIMPLE aproxima el contorno el un polígono y cada contorno está representado por la lista de los vértices de ese polígono El código actualizado está aquí

Secuencias y OpenCVOpenCV utiliza el CvSeq tipo para construir secuencias de objetos En una CvSeq hay 4 indicadores:... h_next , h_prev, v_next e v_prev, que apuntan a otras secuencias. h_next y el punto h_prev a secuencias en el mismo nivel y puntos v_next y v_prev a secuencias en otros niveles.

En nuestro caso esto es genial: en el primer nivel son los contornos exteriores de los componentes conectados y en el segundo nivel están los contornos de los agujeros de cada componente

Dibujo los componentes conectados Vamos a completar el ejemplo. pintar los componentes de conexión en una nueva imagen. Utilizamos la función cvDrawContours. Agregue la siguiente después del último código. El código actualizado está aquí.

para (ptr = contornos; ptr = NULL;! ptr = ptr-> h_next) {color CvScalar = CV_RGB (rand () y 255, rand () y 255, rand () y 255); cvDrawContours (cc_color, ptr, color, CV_RGB (0,0,0), -1, CV_FILLED, 8, cvPoint (0,0)); }

Y que! Ahora compilar el programa y ejecutarlo con esta imagen. Usted debe obtener la primera imagen como el resultado :) Más tareas con componentes conectados Hay otras tareas comunes que se relacionan con los componentes conectados. Voy a enumerar tres de ellos aquí: Obtener el recuadro de delimitación de un componente

Usamos la cvBoundingRect función.

Recibe un CvSeq o CvContour y otro parámetro que le pregunta si la caja debe ser recalculado

(1) o si usted puede tomar el valor de CvContour

(0). Devuelve un CvRect, que contiene 4 atributos: x, y, ancho e altura. aproximar un componente de un polígono

Podemos utilizar cvApproxPoly, que se aproxima a un contorno de un polígono. Esto se hace cuando se utiliza CV_CHAIN_APPROX_SIMPLE, pero no sé si se utiliza el mismo método.

Probar si un punto está dentro de un componente conectado

Podemos utilizar cvPointPolygonTest para probar si un punto está dentro de algunos polígonos. Como nos podemos aproximar un contorno de un polígono podemos utilizar esta función para comprobar si un punto pertenece a un componente conectado. No hay que olvidar para comprobar si el punto está fuera de los agujeros en el componente.

Conclusión

Esta es sólo una introdu

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