¿Cómo puedo detectar elementos de GUI usando opencv?

7

Dada una captura de pantalla de una aplicación, ¿hay alguna forma de encontrar elementos GUI de esa aplicación usando solo opencv? (algo así como en la imagen) Imagen de Outlook deseada después de la detección del elemento

Intenté jugar mezclando la imagen y otros efectos de la muestra coherence.py en la carpeta de instalación de opencv. No logró obtener un resultado viable.

¿Alguien ha hecho esto? ¿Tienes alguna idea de lo que podría intentar?

Gracias

(Soy nuevo en opencv y procesamiento de imágenes, así que no evite explicaciones obvias si es posible) :)

Radu Enea
fuente
2
Esto no está en OpenCV, pero eche un vistazo a Sikuli.org que tiene exactamente el propósito que está buscando
Ivo Flipse
Sé acerca de Sikuli. Lo que necesitaba era una forma de detectar las áreas de interés sin tomar una captura de pantalla de antemano. La respuesta fue el enfoque MSER con inicialización específica. De todos modos, gracias por el consejo de Sikuli.
Radu Enea
Si puedo preguntar qué estabas programando? Llegué buscando la misma pregunta. Mi intención es hacer que se pueda hacer clic en los elementos del teclado para aplicaciones que no tienen atajos de teclado definidos. ¿Trabajaste en algo similar?
urza.cc
No, fue para un pequeño proyecto de automatización de pruebas de IU. Se suponía que debía "ver" al usuario interactuar con la interfaz de usuario y luego generar pequeños scripts para reproducir las acciones. Lo abandoné en algún momento debido a la falta de fiabilidad de Sikuli a largo plazo. Pude obtener capturas de pantalla de los elementos en la interfaz de usuario, pero Sikuli no logró encontrarlos en el 100% de los casos (probablemente eran demasiado pequeños o demasiado similares a otros elementos)
Radu Enea

Respuestas:

9

El extractor MSER de OpenCV ( documentado aquí ) podría ser útil: el cuadro delimitador de los grupos MSER locales coincidiría bastante con los rectángulos verdes en su maqueta.

smokris
fuente
Gracias. Parece lo que estoy buscando. Lo intentaré uno de estos días
Radu Enea
Ladrar. Lo hice. Solo tengo que ajustarlo ahora para lo que necesito. Gracias de nuevo.
Radu Enea