Setando o environment Python
-
Baixar e instalar executável da linguagem python (recomendado 3.6.5~)
-
Baixar e instalar o PIP (baixar o arquivo get-pip.py e executá-lo no terminal com o comando )
python get-pip.py
-
Ainda no terminal, execute os comandos e
pip install opencv-python
pip install numpy
-
Como o Ubuntu já vem por padrão com o python 2.7 instalado, podemos pular o primeiro passo e instalar diretamente o PIP com o comando
sudo apt-get update install python-pip
-
Ainda no terminal, execute os comandos (esta etapa pode demorar um pouco)
pip install opencv-python -vvv
pip install numpy -vvv
Template Matching é um método para buscar e encontrar a localização de uma imagem de template numa imagem maior. O OpenCV
vem com uma função chamada cv.matchTemplate()
que serve justamente para isso.
Em resumo ele coloca uma imagem sobre a outra e compara as duas para cada posição disponível na imagem maior. O OpenCV
implementa vários métodos diferentes para comparação. Ao fim, os métodos retornam uma imagem em preto e branco, em que cada pixel representa quanto aquela vizinhança tem de semelhança com a imagem de template.
- Digamos que a imagem maior tem as dimensões (WxH)
- Digamos que a imagem de template tem as dimensões (wxh)
- Nesse caso a imagem de saída terá as dimensões (W - w +1, H - h +1)
Depois de obtido o resultado, você pode usar o cv.minMaxLoc() para determinar onde está o valor de máximo e mínimo.
- Pegue um retângulo de tamanho (w,h), que é o tamanho da nossa imagem de template, e desenhe sobre a região de máximo
- Este retângulo corresponde ao nosso "match", onde encontramos o resultado
Nota: Quando usando o método de comparação cv.TM_SQDIFF
, o valor de mínimo dá resultados melhores.
- Vamos tentar encontrar o rosto do Messi em uma foto dele
- Para isso usaremos o OpenCV e bibliotecas para apresentar o resultado final
- Ao final, veremos a imagem de saída lado a lado da imagem maior com um retangulo identificando onde foi encontrada a imagem de template
(lembre-se de preparar o ambiente como no começo deste arquivo)
- Abra no seu terminal a pasta onde está o arquivo python (template_matching.py)
- Execute o comando
python template_matching.py
Você deve ver como resultado algo como a seguir
Ao fechar a janela, o algoritmo irá abrindo os próximos
Detectar todas as moedas em uma tela do Jogo "super mario". Todas as imagens necessário estão na pasta './imagens'
https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#ga586ebfb0a7fb604b35a23d85391329be https://docs.opencv.org/master/d2/de8/group__core__array.html#gab473bf2eb6d14ff97e89b355dac20707 https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695dac5babb7dfda59544e3e31ea928f8cb16 https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695dac6677e2af5e0fae82cc5339bfaef5038 https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695da5be00b45a4d99b5e42625b4400bfde65 https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695daf9c3ab9296f597ea71f056399a5831da https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695dab65c042ed62c9e9e095a1e7e41fe2773 https://docs.opencv.org/master/df/dfb/group__imgproc__object.html#gga3a7850640f1fe1f58fe91a2d7583695da5382c8f9df87e87cf1e9f9927dc3bc31