-
Notifications
You must be signed in to change notification settings - Fork 0
OpenCV com python. Estudando a Documentação da biblioteca
O objetivo aqui é aprender a usar as ferramentas iniciais da biblioteca OpenCV (biblioteca utilizada para desenvolver códigos com Visão Computacional). Vamos começar do básico, ler uma imagem estática. E, para isso, utilizaremos a função imread()
.
Essa função é usada para ler imagens. Ela recebe dois argumentos:
- o diretório onde a imagem se encontra, que é o endereço onde sua imagem está alocada (algo como C:\Users\Downloads...).
- o modo de leitura da imagem.
O segundo argumento é o mais complexo. Basicamente, existem três possibilidades de argumentos para imread()
, e eles são:
-
cv2.IMREAD_COLOR
. Quando passado como argumento, qualquer transparência que sua imagem possua será perdida. A imagem é carregada em BGR (padrão de cor da biblioteca OpenCV). [cv2.IMREAD_COLOR
equivale a 1] -
cv2.IMREAD_GRAYSCALE
. Carrega a imagem em escala de cinza. [cv2.IMREAD_GRAYSCALE
equivale a 0] -
cv2.IMREAD_UNCHANGED
. Carrega a imagem em BGR, mas conserva a transparência dos pixels (a imagem é carregada com um canal alfa, ou 'Alpha Channel'). [cv2.IMREAD_UNCHANGED
equivale a -1]
Então, vamos ver um exemplo para isso ficar mais claro.
import cv2
#quando a imagem estiver no mesmo diretorio que seu programa
#não é necessário especificar o diretorio completo.
image_gray = cv2.imread('photo.jpg', cv2.IMREAD_GRAYSCALE)
image_color = cv2.imread('photo.jpg') #o valor padrão de leitura é cv2.IMREAD_COLOR
image_alpha = cv2.imread('photo.jpg', -1)
A função imshow()
é utilizada para mostrar imagens na tela. Assim como a imread()
, passamos apenas dois argumentos para a função, e eles são:
- o nome que você deseja dar a janela criada (em str).
- e a imagem, ou melhor, a variável que contém a imagem.
Veja o exemplo a seguir:
import cv2
image = cv2.imread('photo.jpg')
cv2.imshow('image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Apareceram duas funções novas: waitKey() e destroyAllWindows(). São funções bem simples e vamos explicá-las agora.
O nome é bem sugetivo. Essa função espera, durante um intervalo de tempo, uma tecla ser pressionada. Esse tempo em contado em milissegundos. Quando o argumento passado é 0
, ela espera indefinidamente alguma tecla ser pressionada. Essa espera torna possível ao usuário a visualização da imagem plotada, pois o programa executa numa escala de tempo muito baixa. Não dá pra acompanhar o computador, logo a gente precisa dar esse "delay" na execução.
Outro nome bastante sugestivo. Essa função "destrói" (fecha) todas as janelas que o openCV abrir. É particularmente útil no final dos códigos, quando o programa deve encerrar a execução. Se você não utilizar, as janelas continuarão abertas e você terá que fechá-las manualmente.