Na aplicação do pré-processamento de imagens as bibliotecas são fundamentais, simplificando tarefas complexas, tornando o desenvolvimento mais ágil e os códigos mais rápidos em suas execuções.
Finalidade
As bibliotecas de processamento de imagens surgiram com o mesmo objetivo das outras bibliotecas utilizadas para machine learning.
Para quem já trabalhou com linguagem Python, imagine quando se usa, por exemplo, um modelo de regressão linear – um dos primeiros modelos estudados no ramo: não é necessário programar do zero todo o algoritmo usando Python, mesmo que seja possível. A razão de não ser necessário fazer isso é porque alguém já havia desenvolvido esse algoritmo; ele já estava pronto porque alguém já sabia que o algoritmo de regressão linear seria usado muitas vezes.
O que acontece é que se constrói uma vez esse algoritmo, se disponibiliza isso publicamente em forma de código aberto e, assim, as pessoas podem usá-lo.
Esse é o conceito, e isso é o que acontece aqui, também, no ramo do processamento de imagens: da mesma forma que existem bibliotecas específicas da linguagem Python, onde são utilizadas para algoritmos de machine learning, por exemplo, agora veremos bibliotecas que servem, basicamente, para usar funções prontas para fazermos manipulações de imagens.
Afinal, transformar uma imagem que está colorida (sendo que há três canais de cores RGB) para uma escala de cinza é uma coisa que será feita muitas vezes, então, por isso, alguém criou uma fórmula, um algoritmo que já está pronto para fazer isso para nós.
Há várias funções prontas que podemos utilizar, apenas chamando-as e passando os parâmetros, e elas farão as mais diversas manipulações.
OpenCV
Em nosso curso Redes Neurais, Deep Learning e Visão Computacional focamos na biblioteca do OpenCV, que é uma das mais completas de todas. Há várias bibliotecas que fazem manipulações de imagens, como Scikit-image, o Pillow, o SimpleCV, e muitas delas são complementares pois fazem funções que outras não fazem.
A OpenCV é uma das mais populares e mais completas, por isso dedicamos a maior parte do curso nela.
Ao final também mostraremos, um pouco, como se usa o Pillow, que é até um pouco mais simples que o OpenCV, apesar de ser um pouco mais limitado; depois, em alguns momentos, quando falamos de um ou outro algoritmo, acabaremos usando alguma outra biblioteca como Scikit-image, mas focamos mais atentamente no OpenCV.
Até porque não adianta ficar mergulhando com todos os detalhes de cada uma das bibliotecas, sendo que muitas funções que uma usa a outra também faz de forma um pouco diferente, com um código um pouco diferente, mas que acaba tendo o mesmo resultado.
Evolução das bibliotecas
As bibliotecas estão sempre em evolução, e outra coisa importante de entender também é que hoje, quando começamos a usar as bibliotecas, elas possuem alguns recursos, mas amanhã elas já podem possuir outras funções extras ou reformulações das funções antigas, porque todas as bibliotecas estão em constante desenvolvimento.
O conceito de código aberto, de contribuição, é interessante por causa disso: qualquer pessoa pode contribuir, adicionar um pacote, disponibilizar para os demais desenvolvedores. Então, as bibliotecas vão ficando mais complexas, mais robustas e, por isso, algumas soluções que não existiam hoje ou ontem, podem existir amanhã. Isso vale não só para o OpenCV, mas, também, para outras bibliotecas.
Processamento de imagens na prática
O curso onde mergulhamos na visão computacional e no processamento de imagens, estudando redes neurais, deep learning e todas as aplicações envolvidas é o curso de redes neurais, deep learning e visão computacional.
Não deixe de conferir, aprenda do básico ao avançado, com muita didática, tanto em assuntos teóricos quanto nas aplicações práticas.