Detección de monedas (y elipsis en forma) en una imagen

Actualmente estoy trabajando en un proyecto en el que intento detectar algunas monedas que se encuentran en una superficie plana (es decir, un escritorio). Las monedas no se superponen y no están ocultas por otros objetos. Pero puede haber otros objetos visibles y las condiciones de iluminación pueden no ser perfectas. Básicamente, considérate filmando tu escritorio que tiene algunas monedas.

Por lo tanto, cada punto debe ser visible como una elipse. Como no conozco la posición de la cámara, la forma de las elipses puede variar, desde el círculo (vista desde arriba) hasta elipses planas, según el ángulo desde el que se filman las monedas.

Mi problema es que no estoy seguro de cómo extraer las monedas y finalmente colocar elipses sobre ellas (que estoy buscando para hacer más cálculos).

Por ahora, acabo de hacer un primer intento estableciendo un valor umbral en OpenCV, usando findContours () para obtener las líneas de contorno y ajustar una elipse. Desafortunadamente, las líneas de contorno rara vez me dan la forma de las monedas (reflejos, mala iluminación, ...) y de esta manera tampoco es preferible ya que no quiero que el usuario establezca ningún umbral.

Otra idea era usar un método de coincidencia de plantilla de una elipse en esa imagen, pero como no sé el ángulo de la cámara ni el tamaño de las elipses, no creo que esto funcione bien ...

Así que quería preguntar si alguien podría decirme un método que funcionara en mi caso ...

¿Hay alguna forma rápida de extraer las tres monedas de la imagen? Los cálculos deben hacerse en tiempo real en dispositivos móviles y el método no debe ser demasiado sensible para luces diferentes o cambiantes o el color del fondo.

Sería genial si alguien pudiera darme algún consejo sobre qué método podría funcionar para mí ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta