Olá, estudante! Em nossa última lição, vimos que uma das áreas necessárias para a robótica é a de Visão Computacional. No entanto, para que ela aconteça, é essencial que ocorra o processamento das imagens captadas pelo dispositivo que queremos que interaja com o ambiente. Dessa forma, você já compreendeu qual será o nosso objetivo aqui, não é mesmo? Você aprenderá como o computador processa as imagens que gostamos tanto de assistir, produzir, baixar e subir na Internet, seja em tempo real, seja gravadas.
O processamento de imagens tem sido amplamente utilizado em vários setores, e um exemplo muito interessante e que não é raro é a utilização em muitos países dos sistemas para vigilância e reconhecimento de pessoas. Basicamente, esses sistemas são câmeras instaladas em aeroportos e ruas das cidades que detectam pessoas e mapeiam seus rostos e realizam uma checagem em banco de dados de pessoas procuradas pela justiça. O mesmo acontece, por exemplo, em locais em que a segurança é feita por biometria. Já percebeu como essas coisas estão cada vez mais próximas de nós?
Você pode pensar então: mas que tipo de processamento é necessário para isso? Imagine um carro que passa por uma câmera, mas, devido à escuridão, não é possível detectar a placa dele. Nessas circunstâncias, temos a aplicação de técnicas de processamento de imagens que poderiam realizar uma equalização em determinado tom e, assim, tornar possível a visualização ou reconhecimento da placa do carro. Portanto, veja como estamos estudando uma área que contribui bastante para a nossa própria segurança. Concorda que isso é muito interessante?
Durante algum tempo, agências de inteligência interceptaram alguns e-mails de pessoas suspeitas. Para surpresa delas, esses e-mails continham apenas fotos, sem nenhuma frase, palavra ou, mesmo, algo que comprometesse a mensagem ou que pudesse ser interpretada como ameaça ou, mesmo, um plano. No entanto, com o passar do tempo, as imagens foram ficando cada vez mais aleatórias, até que um dia conseguiram verificar que as imagens continham bits de informação.
A esse tipo de técnica em que se esconde um texto em uma imagem damos o nome de esteganografia, que tem a capacidade de ser usada em diversos formatos de mídia, fotos, áudios, vídeos, textos, entre outros. Você sabia que isso era possível? Quer ver isso na prática? Já pensou em ver duas imagens idênticas, mas em uma delas possuir dez capítulos de livros? Sim, isso é possível! Um fabricante de antivírus demonstra em seu site como funciona a esteganografia, e você pode ver isso acontecer clicando aqui.
Marques Filho e Vieira Neto (1999, p. 1) dizem que
[..] a área de processamento de imagens vem sendo objeto de crescente interesse por permitir viabilizar grande número de aplicações em duas categorias bem distintas: (1) o aprimoramento de informações recebidas por meio de imagens para interpretação humana; e (2) a análise automática por computador de informações extraídas de uma cena.
Os elementos de um sistema de processamento de imagens podem ser visualizados na Figura 1.
A figura representa qualquer tipo de sistema de processamento de imagens, pois as etapas que compreendem são, basicamente, as mesmas: aquisição, armazenamento, processamento e exibição.
No caso da aquisição, por exemplo, a ideia é de que ela consiga converter uma imagem em uma representação por números. Marques Filho e Vieira Neto (1999) explicam que isso compreende dois elementos: um dispositivo físico sensível a uma faixa de energia no espectro eletromagnético (como raio X, ultravioleta, espectro visível ou raios infravermelhos), que produz na saída um sinal elétrico proporcional ao nível de energia detectado, e um digitalizador, que terá a função de converter o sinal elétrico analógico em informação digital (0s e 1s).
O armazenamento é um processo bastante preocupante, pois envolve grande volume de bytes. Ele pode ser dividido em três categorias:
Armazenamento de curta duração de uma imagem, enquanto ela é utilizada nas várias etapas do processamento.
Armazenamento de massa para operações de recuperação de imagens relativamente rápidas.
Arquivamento de imagens, para recuperação futura quando isso se fizer necessário.
Marques Filho e Vieira Neto (1999, p. 3) explicam que:
Para o armazenamento de curta duração, a alternativa mais simples é utilizar parte da memória RAM do computador principal. Outra opção consiste no uso de placas especializadas, chamadas frame buffers, que armazenam uma ou mais imagens completas e podem ser acessadas a uma alta velocidade, tipicamente 30 imagens completas por segundo. O uso de frame buffers permite também que operações de zoom (ampliação ou redução para fins de visualização), scroll (rolagem na vertical) e pan (rolagem na horizontal) sejam executadas de forma praticamente instantânea. Placas frame buffers disponíveis no mercado atualmente apresentam capacidade de armazenamento na faixa de alguns MB de memória.
Outra maneira de realizar o armazenamento seria por meio do uso de discos magnéticos a partir de centenas de MB. Porém há um aspecto que não pode ser ignorado, que é o tempo que leva para acessar essas imagens. Por meio de cálculo, como podemos ver a seguir:
Cálculo: (nº de pixels na horizontal x nº de pixels na vertical x nº de bits necessários para a escala de cinza / 8)
A fórmula anterior permite estimar a quantidade de bytes necessários para armazenar uma imagem monocromática (de uma só cor) em disco. Nesse caso, a imagem seria uma matriz, e os elementos dessa matriz, os valores de tons de cinza dos respectivos pixels. Além disso, informações extras, como o tamanho da imagem e o número de cores ou tons de cinza, são necessárias. Essas informações aparecem, em geral, em um cabeçalho (header) no início do arquivo.
Seria muito bom se tivéssemos apenas um formato para trabalharmos com imagens e cabeçalhos, mas isso não acontece. Temos, na verdade, muitos formatos distintos e você conhece alguns: BMP, PCX, TIFF, JPEG e GIF.
O próximo passo é o processamento de imagens, e isso envolve algoritmos específicos que conversam, diretamente, com o funcionamento de hardwares criados especificamente para tratar imagens. Assim, é possível ter uma solução que possa controlar as placas para processamento e que determina a sua aplicação em termos de redução de custo, modularidade, reutilização de componentes de software em outra aplicação rodando sobre o mesmo hardware e independência de fornecedor.
De nada adiantaria os processos anteriores, se não fosse possível conseguir exibi-los. O monitor é um bom exemplo do que é o processo. Os dispositivos periféricos de saída especializam-se na produção de cópias da imagem em forma de fotografias, slides ou transparências, tornando-se cada vez mais usuais.
Marques Filho e Vieira Neto (1999) explicam que uma imagem monocromática ou de uma única cor pode ser descrita matematicamente. Para isso, podemos utilizar uma função f(x,y), que representa a intensidade de luminosidade. Seu valor, em qualquer ponto de coordenadas espaciais (x,y), é proporcional ao brilho (ou nível de cinza) da imagem naquele ponto.
A Figura 2 mostra uma imagem monocromática, extraída do livro de Marques Filho e Vieira Neto (1999).
No caso da imagem, é possível observar os pontos (0,0) no canto superior esquerdo, e eles representam, aqui, a linha e a coluna referentes ao primeiro ponto da matriz. A função f(x,y) representa o produto da iluminância i(x,y) (referente à quantidade de luz que incide sobre o objeto) e as propriedades de refletância do objeto, que são representadas pela função r(x,y), cujo valor será a fração de luz que o objeto transmitirá ou refletirá ao ponto (x,y). Esses valores serão, portanto, direcionados para valores típicos desses aspectos descritos anteriormente.
A partir dessa pequena introdução, você pode imaginar como é interessante essa área da computação, não é mesmo? Além de interessante, essa área é extremamente importante e possui muitas possibilidades de aplicação. Imagine, agora, o estudo de imagens coloridas, tridimensionais e de movimento.
Alerta! Vale esclarecer que a área de processamento de imagens é diferente da computação gráfica. Apesar de serem, muitas vezes, confundidas, cada qual possui propostas, finalidades e técnicas divergentes.
Por fim, convido você a continuar estudando sobre processamento de imagens, pois é uma área de tantas possibilidades de aplicação e que, atualmente, tem sido muito explorada, também, por projetos de inteligência artificial.
O processamento de imagens tem muita importância nos estudos sobre nosso planeta e universo. Afinal, toda missão enviada precisa captar imagens e enviar para o nosso planeta. Dessa maneira, a NASA desenvolve muitas tecnologias nesse sentido e, ao mesmo tempo, precisa de muito espaço para armazenar as imagens que, em sua grande maioria, ocupam muito espaço computacional. Visite o site https://www.jpl.nasa.gov/ e veja vários exemplos de imagens interessantes e de projetos que utilizam o processamento de imagens. Você terá muitas possibilidades de conhecer projetos interessantes e ver muitas aplicações.
MARQUES FILHO, O.; VIEIRA NETO, H. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999.