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 introduPrograma en varias aplicaciones con Titanium
NET - C # - Uso UserControls como co…