Operações básicas com imagens e GUI do Windows

Em OpenCV é muito simples exibir imagens gravadas no disco. As funções imread(), namedWindow() e imshow() do módulo highgui fazem todo o trabalho para o programador.

Veja um exemplo:

Eu não vou quebrar o código em pedaços e explicá-lo, mas as partes principais serão comentadas abaixo.

Isso cria uma variável chamada im do tipo cv :: Mat (escrevemos apenas Mat em vez de cv :: Mat porque utilizamos o namespace cv; acima, esta é uma prática padrão). Ele também lê a imagem chamada image.jpg a partir do disco, e a coloca em im através da função imread(). CV_LOAD_IMAGE_COLOR é um tipo de marcação (uma constante definida no arquivo de cabeçalho highgui.hpp) que informa imread() para carregar a imagem como uma imagem a cores.

Uma imagem colorida (RGB) possui 3 canais – vermelho, verde e azul – diferentemente de uma imagem em tons de cinza, que tem apenas um canal. Você pode usar CV_LOAD_IMAGE_GRAYSCALE para carregar a imagem em escala de cinza.

O tipo de im aqui é CV_8UC3, em que 8 indica o número de bits que cada pixel ocupa em cada canal, U indica caracteres sem sinal (de cada pixel de cada canal é um caracter de 8 bits sem sinal) e C3  indica 3 canais.

Primeiro cria uma janela chamada Hello (Hello também é exibido na barra de título da janela) e, em seguida, mostra a imagem armazenada em im, na janela. O resto do código é apenas para evitar de sair e destruir a janela antes que o usuário pressiona ‘q’ ou ‘Q’.

Uma função que deve ser destacada aqui é waitKey(). Esta espera infinitamente por uma tecla pressionada. Ele retorna o código ASCII da tecla pressionada ou -1 se nenhuma tecla foi pressionada. Note que waitKey() só funciona se uma janela GUI de OpenCV é aberta e está em foco.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *