Su enunciado del problema se puede dividir en dos partes. La aplicación de Android y la lógica de visión por computadora para detectar una moneda. Vamos a abordarlos uno por uno.
Detectando una moneda en una imagen
Queremos detectar todos los círculos en la imagen. (suponiendo que las monedas son circulares)
OpenCV proporciona una función estándar: HoughCircles para detectar formas circulares en una imagen (fragmento de código a continuación). Esto nos ayudará a detectar todas las monedas / círculos en la imagen.
- Quiero aprender el desarrollo de aplicaciones en Bangalore. Sé Java básico. Donde puedo aprender
- Tengo una idea increíble para una aplicación, sé que sería un éxito, pero no sé cómo crear una aplicación. ¿Cómo empiezo?
- Soy un chico de 16 años y me encanta desarrollar juegos y aplicaciones para Android. Pero ahora estoy pensando en promocionarlo, pero a un costo cero o con un bajo presupuesto. ¿Cómo?
- Estoy participando en la Imagine Cup para desarrollar una aplicación. Estoy confundido si debería desarrollar una aplicación nativa o híbrida. ¿Cuál es el marco recomendado que debo usar?
- Quiero crear una aplicación para mi negocio, sin codificación. ¿Hay algún tipo de herramienta de bricolaje que pueda usarse?
Una vez que hemos identificado la posición de todas las monedas / círculos en la imagen, el siguiente paso es detectar el número impreso en la moneda. Dado que una moneda puede tener varias cosas impresas, ejecutar directamente el reconocimiento de dígitos será inútil. Necesitamos algún tipo de preprocesamiento.
Un enfoque simple puede ser: encontrar contornos dentro del cuadro delimitador de cada círculo detectado y asumir que el contorno tiene el área más grande para ser el dígito. Luego podemos pasar el contorno como entrada en un algoritmo de reconocimiento de dígitos estándar. El algoritmo de reconocimiento de dígitos le devolverá el número impreso en el dígito.
(La última parte de la lógica está sujeta a la calidad de la imagen. Puede suceder que el contorno más grande que obtenga no sea la moneda)
Aplicación de Android
Necesita construir una aplicación simple que pueda capturar imágenes. Puede optar por utilizar la intención de la cámara existente proporcionada en el SDK de Android o crear la suya propia a través de NativeCameraView.
Una vez hecho esto, lo único que queda es implementar la lógica antes mencionada en Android. OpenCV proporciona un SDK para Android que es muy similar a los SDK de Python / C / C ++.
Aquí está el fragmento de código para implementar HoughCircles en Android usando OpenCV
(Fuente de la imagen: Programación de aplicaciones de Android Mastering OpenCV: Salil Kapur, Nisarg Thakkar: 9781783988204: Amazon.com: Libros)
Del mismo modo, puede implementar la detección de contornos y el reconocimiento de dígitos en Android.
Existen soluciones más sofisticadas para este problema.