O que seria?

Visão Computacional é uma área da computação que tem o intuito de analisar, interpretar e até mesmo alterar imagens por meio de códigos. Diariamente, tiramos proveito desse estudo, como em câmeras de segurança, reconhecimento facial e biometria, dentre outros. Para nós, essa área será de grande ajuda para vencer os desafios que as principais olimpíadas têm a oferecer. Como no caso da Olimpíada Brasileira de Robótica (OBR) e a Latin American Robotics Competition (LARC).

Imagens

Primeiramente, ampulheters, toda imagem digital é formada por uma cadeia retangular de pixels que recebem valores diferentes dependendo da sua coloração. Esses pixels são dispostos em um plano cartesiano, contendo cada um deles coordenadas e padrão de cores. É válido citar que em uma imagem, o eixo x cresce da esquerda para direita e o eixo y de cima para baixo, assim como a imagem demonstra:

Imagem 1: Plano da imagem digital

No padrão de cor RGB (padrão de cor mais popular), cada pixel vai receber três valores que condizem com as cores vermelho, verde e azul, respectivamente. Esses valores variam de 0 a 255 no formato (R,G,B) e são utilizados para formar diferentes cores e tonalidades, sendo o preto (0,0,0) e o branco (255,255,255). Não se esqueça: o RGB é apenas um de muitos outros formatos e durante o curso seram apresentados outros padrões e suas respectivas funcionalidades.

Imagem 2: representação RGB

Programação

Para a manipulação dessas imagens utilizaremos a linguagem python e a biblioteca OpenCV, logo, o curso considera que você ja domine os conceitos basicos de programação para prosseguir.

imagem 3: OpenCV

O ampulheter mais atento irá se perguntar: “Poxa, mas por que utilizaremos justo o python munido dessa biblioteca?”. Eis a resposta: A OpenCV é uma biblioteca que contém diversas funções e métodos úteis para manipulações de imagem no geral, sendo uma das mais famosas no meio da Visão Computacional!
Essa biblioteca também está presente nas linguagens Java e C++, no entanto, o python apresenta uma sintaxe e interpretação mais amigáveis, tornando-se uma melhor opção para os nossos códigos.