Encontrar uma imagem dentro de outra em java

Tenho um codigo que tira print da minha tela. Eu preciso de algo que eu mande uma imagem de um icone e ele encontre o icone dentro de uma outra imagem e sua respectiva posição x e y. Por exemplo um botão, eu envio a imagem do botão e ele encontra a posição do botão dentro de um print que fiz da minha tela. Vcs ja viram algum projeto assim?

OpenCV

Isso eu ja sabia, mas ja viu quanto material existe sobre javacv? E acho que meu problema é simples demais pra uma biblioteca tão grande. Só preciso localizar um icone dentro de uma imagem. Usar javacv é como usar um canhão pra matar uma mosca.

Processamento de imagens e reconhecimento de padrões não é algo simples de se implementar, por isso o amigo @Rodrigo_Void sugeriu o uso de OpenCV que já traz muita coisa pronta.

No seu caso, se o ícone que você está procurando possui exatamente a mesma resolução dos ícones dentro de seu printscreen, você pode tentar implementar na munheca mesmo.
Você pode tentar dessa forma:

  • pega seu printscreen e obtém um array com os pixels dele;
  • faz a mesma coisa com o ícone que você está procurando;
  • agora tenta localizar o array de pixels de seu ícone, dentro do array de pixels do printscreen.
    Entretanto, você ainda pode encontrar dificuldades, pois se o seu ícone possuir fundo transparente, você terá que implementar tratativas, pois no seu printscreen não haverá pixels transparentes e o fundo da imagem que estará procurando será substituido pela cor de fundo da tela.

Particularmente também acho que o OpenCV seria a melhor opção.

1 curtida

@staroski foi isso mesmo que pensei, acho que vou fazer na munheca mesmo. Achei opencv bem pesado pra fazer só isso. Muito obrigado mano!