# Conteo de objetos

Contar objetos es un problema muy común en el campo de la visión por computador. Este tutorial te enseña cómo contar objetos circulares en un área dada usando algoritmos convencionales de visión por computador.

La imagen de ejemplo ya está incluida en AugeLab Studio en la carpeta de imágenes de ejemplo como el archivo **coins2.jpg**.

Crea un bloque [Load Image](https://docs.augelab.com/spanish/function-blocks/blocks-reference/input-output/image-inputs/load-image) en un escenario vacío y carga la imagen de ejemplo mostrada abajo:

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-dd3457b3c88f14a7f7d6f060de50f774d20d202a%2Fimage%20(75).png?alt=media" alt=""><figcaption></figcaption></figure>

Como primer paso, necesitamos separar las monedas del fondo usando el bloque [Image Threshold](https://docs.augelab.com/spanish/function-blocks/blocks-reference/image-transformations/color-filters/image-threshold). Esto también puede hacerse con [HSV Filter](https://docs.augelab.com/spanish/function-blocks/blocks-reference/image-transformations/color-filters/hsv-filter) o [RGB Mask](https://docs.augelab.com/spanish/function-blocks/blocks-reference/image-transformations/color-filters/rgb-mask), pero separar las áreas de color y obtener una imagen binaria será suficiente. Crea la lógica que aparece a continuación:

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-dbfd7f2f40c00b52d11df95412e3aeba351e4f4e%2Fimage%20(76).png?alt=media" alt=""><figcaption></figcaption></figure>

Como usaremos el bloque [Find Contour](https://docs.augelab.com/spanish/function-blocks/blocks-reference/detections-shapes/shape-analysis/find-contour) para contar cuántas áreas blancas distintas existen, seleccionaremos la opción `THRESH_BINARY_INV` para filtrar la imagen y ajustaremos el deslizador para filtrar el fondo.

Sin embargo, puede que observes que las áreas blancas no están perfectamente separadas. Usar el bloque Find Contour en este estado dará un resultado incorrecto:

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-2d94a1414640699c53629e5abeacf57dea4bc6a6%2Fimage%20(77).png?alt=media" alt=""><figcaption></figcaption></figure>

Como ves, no hay 14 monedas claramente separadas en la imagen proporcionada. Necesitamos un algoritmo que separe o encoja las áreas blancas. Para esto usaremos el bloque [Distance Transformation](https://docs.augelab.com/spanish/function-blocks/blocks-reference/image-transformations/transformation-filters/distance-transformation):

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-961568f28793163491642b20a0568e1012341616%2Fimage%20(78).png?alt=media" alt=""><figcaption></figcaption></figure>

La transformada de distancia calcula qué tan lejos está cada píxel de la densidad de color blanco. Volver a usar [Image Threshold](https://docs.augelab.com/spanish/function-blocks/blocks-reference/image-transformations/color-filters/image-threshold) sobre el resultado producirá áreas blancas separadas para cada moneda:

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-54e4f150c6c4894fa9c96cfee935d86c70d50a13%2Fimage%20(79).png?alt=media" alt=""><figcaption></figcaption></figure>

Ahora, usar el bloque Find Contour debería devolver cuántas monedas hay en la imagen de referencia:

<figure><img src="https://1490675745-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F05D1CT7pajknL8HxF5RY%2Fuploads%2Fgit-blob-269a6f26b5529d486dd0597308243330b57ca8e1%2Fimage%20(80).png?alt=media" alt=""><figcaption></figcaption></figure>

¡Eso es todo! Ahora sabes cómo contar cada objeto en un área dada con AugeLab Studio.
