Estoy tratando de encontrar la forma de obtener el reconocimiento de imagen de Sikuli para usar dentro de C#. No quiero usar Sikuli porque su lenguaje de scripting es un poco lento, y porque realmente no quiero introducir un puente java en el medio de mi aplicación .NET C#.Reconocimiento de región de pantalla para buscar la ubicación del campo en la pantalla
Entonces, tengo un mapa de bits que representa un área de mi pantalla (llamaré a esta región BUTTON1). Es posible que el diseño de la pantalla haya cambiado ligeramente o que la pantalla se haya movido en el escritorio, por lo que no puedo usar una posición directa. Tengo que encontrar primero donde actual posición de BUTTON1 está dentro de la pantalla en vivo. (Traté de publicar imágenes de esto, pero creo que no puedo porque soy un nuevo usuario ... Espero que la descripción lo aclare ...)
Creo que Sikuli está usando OpenCV bajo las sábanas . Como es de código abierto, creo que podría realizar una ingeniería inversa, y averiguar cómo hacer lo que están haciendo en OpenCV, implementándolo en Emgu.CV, pero mi Java no es muy sólida.
He buscado ejemplos que muestren esto, pero todos los ejemplos son extremadamente sencillos (es decir, cómo reconocer una señal de stop) o muy complejos (es decir, cómo hacer reconocimiento facial) ... y tal vez solo soy denso , pero parece que no puedo dar el salto en la lógica de cómo hacer esto.
También me preocupa que todas las rutinas de manipulación de imágenes sean realmente intensivas en el procesador, y realmente quiero que sea lo más ligero posible (en realidad podría tener muchos botones y campos que estoy tratando de encontrar en una pantalla ... .)
Por lo tanto, la forma en que estoy pensando en hacer esto en su lugar es:
a) convertir los mapas de bits a las matrices de bytes y hacer búsqueda de fuerza bruta. (Sé cómo hacer esa parte). Y luego
B) Use la posición del arreglo de bytes que encontré para calcular su posición de pantalla (realmente no estoy completamente seguro de cómo hago esto) en lugar de usar el procesamiento de imágenes.
¿Está completamente loco? ¿Alguien tiene un ejemplo simple de cómo se podría usar Aforge.Net o Emgu.CV para hacer esto? (¿O cómo desarrollar el paso B de arriba ...?)
¡Gracias!
+1 Pregunta impresionante: ¡Espero que alguien nos presente una buena respuesta! – Charles