Como funciona e como usar a automação de operações GUI por reconhecimento de imagem
Ao gravar e reproduzir macros, muitas pessoas se deparam com a situação: “ontem funcionava, mas hoje o clique está fora do lugar”. Isso geralmente acontece porque a macro gravada opera com base em coordenadas fixas da tela. Se a janela abrir em outro local, a resolução da tela mudar ou a reprodução ocorrer em outro monitor, o clique poderá atingir um ponto diferente do pretendido. A automação por reconhecimento de imagem resolve esse problema fundamental.
O reconhecimento de imagem é uma tecnologia que procura elementos na tela com base na “aparência”, e não nas coordenadas. Primeiro, registra-se uma pequena imagem do botão que se deseja clicar. Durante a reprodução, a ferramenta examina a tela inteira em busca de um local correspondente a essa imagem. Não importa para onde o botão tenha sido movido: desde que a aparência permaneça igual, ele poderá ser localizado e clicado com precisão. Essa é a grande vantagem do reconhecimento de imagem.
Como o reconhecimento de imagem encontra elementos
O mecanismo é simples. Primeiro, capture e salve uma pequena imagem do elemento que servirá como referência, como o botão “Enviar” ou um ícone específico. Essa é a imagem de modelo. Ao executar a macro, a ferramenta captura a tela naquele momento e procura uma área correspondente à imagem de modelo. Quando encontra uma correspondência, retorna as coordenadas do centro, e a macro move o mouse até esse ponto e clica.
Uma configuração importante é o “limiar de correspondência”, ou precisão da comparação. Mesmo sem uma coincidência perfeita de 100%, é possível definir, por exemplo, que uma semelhança de 90% ou mais seja considerada uma correspondência. Aumentar o limiar reduz as detecções incorretas, mas pequenas diferenças visuais podem impedir que o elemento seja encontrado. Reduzi-lo traz mais flexibilidade, porém aumenta o risco de confundir o alvo com outro elemento semelhante. O ideal é testar na tela real até encontrar um valor adequado.
Quando usar FIND_IMAGE e WAIT_IMAGE
O makuroku oferece dois comandos principais para usar o reconhecimento de imagem em scripts. FIND_IMAGE procura onde a imagem está na tela naquele exato momento. Como as coordenadas encontradas podem ser armazenadas em uma variável, ele é adequado para tarefas como “clicar em um botão cuja posição de exibição é desconhecida”.
Por outro lado, WAIT_IMAGE é o comando que “espera até a imagem aparecer”. O carregamento de páginas Web e a inicialização de aplicativos levam tempo; se a operação seguinte for executada antes da conclusão, ela falhará. Com WAIT_IMAGE, é possível criar uma automação confiável e alinhada ao estado da tela, como “esperar o ícone que indica a conclusão do carregamento aparecer antes de continuar”. A combinação desses dois comandos produz uma automação mais resistente às variações de tempo comuns no trabalho real e menos sujeita a falhas.
Situações em que o reconhecimento de imagem é especialmente útil
O reconhecimento de imagens é especialmente eficaz nas seguintes situações.
- • Aplicativos em que a posição dos botões ou das janelas muda a cada vez
- • Quando você deseja aguardar a conclusão do carregamento ou do processamento antes de prosseguir
- • Telas com layout dinâmico que não podem ser tratadas adequadamente apenas com coordenadas
- • Quando você deseja iniciar um processamento ao aparecer um ícone ou estado específico
Por outro lado, o reconhecimento de imagens também tem limitações. A verificação de correspondência tende a ficar instável em designs cuja aparência muda com frequência e em elementos semitransparentes ou animados. Além disso, como é necessário examinar a tela inteira, o processamento leva um pouco mais de tempo do que a especificação de coordenadas. Em vez de substituir tudo pelo reconhecimento de imagens, o ideal é usar cada método onde for mais adequado: “coordenadas onde forem suficientes e reconhecimento de imagens apenas onde a posição mudar”. Esse é o segredo para criar uma automação prática e rápida.
Dicas para preparar boas imagens de modelo
A precisão do reconhecimento de imagens depende muito da qualidade da imagem de modelo registrada. Há algumas dicas importantes. Primeiro, recorte a área que servirá como referência de forma que ela seja “pequena e característica”. Em vez de capturar o botão inteiro, recorte apenas o ícone ou o texto específico daquele botão para diminuir a chance de confundi-lo com outros elementos. Por outro lado, se a área for grande demais, pequenas mudanças ao redor, como a cor de fundo ou um elemento vizinho, poderão impedir a correspondência.
Em seguida, evite partes cuja cor ou estado mude com facilidade. Se você usar como referência um botão que muda de cor ao passar o mouse ou uma área realçada quando selecionada, a correspondência poderá falhar dependendo do estado. Escolha uma parte estável que mantenha sempre a mesma aparência. Além disso, como o tamanho da imagem também muda quando a escala de exibição da tela é alterada, o mais seguro é capturar o modelo usando a resolução e a escala que serão realmente utilizadas. A soma desses pequenos cuidados aumenta significativamente a taxa de sucesso do reconhecimento de imagens.
Combinar o reconhecimento de imagens com outros métodos
O reconhecimento de imagens é poderoso, mas não resolve tudo. Para criar uma automação robusta no trabalho real, o ideal é combinar vários métodos conforme a situação. Para um botão que nunca muda de posição, a rápida especificação de coordenadas é suficiente. Deixe o reconhecimento de imagens apenas para botões cuja posição muda ou para elementos que demoram a aparecer. Se for necessário ler informações textuais da tela, use OCR (reconhecimento de caracteres); se for necessário integrar serviços externos, use comunicação HTTP. Assim, cada método é utilizado de acordo com o objetivo.
O makuroku permite combinar livremente esses métodos em um único script. Por exemplo: “aguardar a tela ficar pronta com WAIT_IMAGE, localizar e clicar em um botão com FIND_IMAGE, ler o valor do resultado com OCR e separar o processamento por meio de condições”. Dessa forma, é possível descrever como um fluxo único uma automação flexível, próxima do trabalho humano. Em vez de insistir em um único método, aproveite os pontos fortes de cada um e combine-os. Essa forma de pensar é o caminho mais curto para uma automação realmente útil no trabalho.
O que fazer quando o reconhecimento de imagem não funciona corretamente
Ao começar a usar o reconhecimento de imagem, pode acontecer de uma imagem que deveria estar cadastrada não ser encontrada. Há várias causas possíveis. A mais comum é a escala de exibição ou a resolução da tela ser diferente entre o momento em que a imagem de modelo foi capturada e o momento da busca. Nesse caso, o tamanho da imagem muda e ela não corresponde. A solução mais segura é capturar novamente o modelo usando as mesmas configurações do ambiente de operação.
A segunda causa mais comum é um limite de correspondência rigoroso demais. Se for exigida uma correspondência perfeita de 100%, até uma diferença mínima de tonalidade ou de antisserrilhamento pode impedir que a imagem seja encontrada. Em muitos casos, reduzir um pouco o limite e considerar uma similaridade de cerca de 90% como correspondência torna a detecção mais estável. Porém, baixar demais aumenta os falsos positivos; o ideal é testar na tela real até encontrar um valor adequado.
Se o problema persistir, reveja a própria área escolhida como modelo. Se você usar como referência uma região cujo fundo muda com frequência ou que fica destacada quando selecionada, a aparência variará conforme a situação e deixará de corresponder. Limitar o modelo a uma parte característica e estável que mantenha sempre a mesma aparência — como um ícone ou logotipo exclusivo — aumenta a taxa de sucesso. Escolher uma referência fácil de localizar é a principal dica para tornar o reconhecimento de imagem estável.
Embora o reconhecimento de imagem exija algum trabalho de ajuste no início, depois de configurado corretamente ele oferece uma flexibilidade que não pode ser obtida com coordenadas fixas. Mesmo que a janela se mova ou o layout mude, ele responde com precisão desde que a aparência permaneça igual. Essa robustez traz muita segurança para o uso prolongado da automação nas operações reais.
Cenário prático com reconhecimento de imagem
Vamos observar a capacidade do reconhecimento de imagem por meio de um cenário concreto. Suponha que seja necessário automatizar o download periódico de dados de um aplicativo Web. A cada login, o layout da tela muda ligeiramente, e a posição do botão de download também não é fixa. Uma macro baseada em coordenadas não consegue acompanhar essas mudanças e logo deixa de funcionar.
É aqui que entra o reconhecimento de imagem. Primeiro, cadastre o ícone do botão de download como imagem de modelo. A macro usa WAIT_IMAGE para aguardar o carregamento completo da página, depois usa FIND_IMAGE para localizar o botão de download na tela e clicar em sua posição. Não importa onde o botão apareça: desde que a aparência seja a mesma, ele poderá ser encontrado e clicado com precisão, resultando em uma automação estável e independente das mudanças de layout.
Além disso, se você usar WAIT_IMAGE para aguardar a mensagem de conclusão do download antes de passar à próxima etapa, nada será perdido mesmo em dias de conexão lenta. Dessa forma, o reconhecimento de imagem incorpora à automação uma decisão natural para as pessoas: observar o estado da tela e agir no lugar certo, no momento certo. É justamente por isso que se pode criar uma automação resistente mesmo no ambiente de trabalho real, um lugar repleto de mudanças.
Esses cenários podem ser aplicados não apenas a aplicativos Web, mas também a aplicativos de desktop, sistemas empresariais e muitas outras situações. Com o reconhecimento de imagem, até tarefas cuja automação havia sido abandonada porque a posição muda ou o momento é imprevisível passam a ser viáveis. Comece pensando em uma tarefa que sempre causava problemas porque a posição mudava e tente estabilizá-la com o reconhecimento de imagem.
Como criar automações robustas
A utilidade real de uma automação no ambiente de trabalho depende de sua capacidade de lidar com situações inesperadas. Uma automação que depende apenas de coordenadas gravadas pode funcionar bem na primeira vez, mas costuma parar diante de uma pequena mudança no ambiente. Ao combiná-la com o reconhecimento de imagem, é possível incorporar decisões que as pessoas tomam inconscientemente, como clicar com base na aparência ou esperar a tela ficar pronta.
Além da gravação por GUI, o makuroku oferece por padrão comandos de reconhecimento de imagem como FIND_IMAGE e WAIT_IMAGE. Primeiro, grave as operações para criar a estrutura básica e substitua pelo reconhecimento de imagem apenas os pontos cuja posição muda ou que exigem esperar o momento certo. Com essa combinação, você pode criar automações que não falham diante do primeiro imprevisto, mas resistem à desordem dos ambientes reais. Como todos os recursos podem ser testados gratuitamente, comece estabilizando com reconhecimento de imagem aquelas tarefas em que “a posição sempre mudava e causava problemas”.
Experimente grátis
Automatize com o makuroku
O makuroku grava seu mouse e teclado e depois reproduz automaticamente. Adicione scripts SCR e integração com IA (MCP) quando precisar de mais. Todos os recursos gratuitos no Windows.
Mais artigos