Trabalhando com aplicações em linguagem de programação Python e a biblioteca OpenCV

Tempo de leitura: 4 minutos

A linguagem de programação Python vem se destacando no mundo Dev nos últimos anos, dentre todas as suas características, uma das particularidades que se sobressai é a simplicidade.

O projeto Python teve início nos primeiros anos da década de 1990 por Guido Van Rossum no Instituto Nacional de Pesquisa para Matemática e Ciência da Computação da Holanda (CWI), é o que afirma Borges (2010) no livro intitulado “ Python para desenvolvedores”. O intuito da linguagem inicialmente tinha como alvo engenheiros e físicos, pois a linguagem Python foi desenvolvida como alternativa da linguagem ABC.  

Atualmente Python é utilizada por grandes empresas e organizações, como por exemplo, Google, Disney, Yahoo, dentre outras.

Tendo em vista que, Python vem ganhando cada vez mais espaço no ramo da Ciência da Computação, desde o desenvolvimento Web a aplicações científicas destacase uma interessante junção da linguagem com a biblioteca OpenCV, por meio dela é possível trabalhar com desenvolvimento de projetos dos mais básicos aos mais sofisticados, tendo a possibilidade de criar aplicações robustas e até inovadoras.  

Um pouco mais sobre a biblioteca OpenCV

Quem trabalha com Visão Computacional ou Processamento de Imagens certamente conhece todas as funcionalidades que a biblioteca OpenCV oferece. De acordo com a documentação, OpenCV é um projeto open source, isto é, possuí código fonte aberto, que tem como uma das principais características, diversos algoritmos para visão computacional já implementados. É também uma biblioteca que possui funções de manipulação básica de imagens e vídeos, desde o carregamento de arquivos até a conversão de um formato em outro.  

Entre as funções encontradas na biblioteca, estão há as de conversão de imagens coloridas para a escala de cinza. Conforme Marengoni e Stringhini (2013), a biblioteca OpenCV permite ao desenvolvedor amplos métodos de manipulação e processamento de imagens digitais, assim como formas simples para realizar tarefas necessárias com as imagens a serem reconhecidas. Por isso, aborda-se uma forma um pouco mais elaborada sobre sua característica, usabilidade e a forma simples com a qual podemos usá-la junto à linguagem Python.

A biblioteca OpenCV é perfeita para construir sistemas baseado em detecção de bordas, no caso de uma pesquisa recente desta autora, este método foi utilizado para reconhecimento de tipos sanguíneos. Mas o que é detecção de bordas?

Segundo Gonzalez e Woods (2000) no trabalho intitulado Processamento de Imagens a borda é caracterizada por uma região que contém um alto gradiente. O que por sua vez é uma imagem f numa posição (x,y). Os autores salientam ainda que a detecção de bordas é uma das operações fundamentais quando realizamos o processamento de imagens. Isso ajuda a reduzir a quantidade de dados (pixels) para processar e manter o aspecto estrutural da imagem, além de extrair características da mesma.  

mulheres desenvolvedoras

Aplicações desenvolvidas em Python e OpenCV

Como já mencionado pela nobre autora que vos escreve (ou tenta escrever) está desenvolvendo um sistema de detecção de tipo sanguíneo utilizando Python com OpenCV por meio do método de detecção de bordas, mais especificamente a técnica de Sobel, caso tenha mais interesse nesse modelo matemático, pesquise mais sobre o assunto, talvez em um próximo post eu aborde um pouco mais sobre a técnica.  

Pois bem, como já apontado é possível construir distintos sistemas por meio da junção Python e OpenCV, como exemplo, um detector facial.

Geralmente a técnica utilizada baseia-se nos classificadores em cascata, o chamado recursos Haar (modelo matemático utilizado no processamento e análise de sinais e na compressão de dados) é um método de detecção de objetos proposto por Paul Viola e Michael Jones no trabalho, “Rapid Object Detection using a Boosted Cascade of Simple Features” em 2001. Se você tem curiosidade de utilizar ou ver o código que eu escrevi, basta visitar meu Github.

Para dar mais emoção nos testes do código foi utilizada uma revista em quadrinhos para termos ideia, o quanto a junção Python e OpenCV é interessante. Notem que a captura das faces na imagem, os quadros verdes são a referência de detecção, esse arquivo possui a marcação de quais pontos são necessários para, por exemplo, achar um rosto em uma foto. No entanto observa-se a não captura de todas as faces, isso acontece devido as configurações do computador utilizado no experimento.

Agora nobres Devs, que já sabemos o quanto a integração da linguagem Python e da biblioteca OpenCV pode ser benéfica, dê asas aos seus códigos. Então, estude, pratique e acima de tudo sinta-se à vontade com a linguagem a qual deseja trabalhar.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *