Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Processamento de imagem digital
Apresentação dos conceitos básicos sobre processamento de imagens digitais, bem como problemas e
soluções em sua elaboração.
Profa. Catiúscia Albuquerque Benevente Borges, Prof. Sérgio Assunção Monteiro
1. Itens iniciais
Propósito
Compreender os conceitos básicos da formação de uma imagem digital, as especificidades que ocorrem
nesse processo e os métodos empregados para realizar operações sobre imagens.
Preparação
Para executar nossos exemplos, você vai precisar ter uma conta no Gmail e utilizar o Google Colab.
Objetivos
Identificar os elementos de uma imagem digital no processo de sua construção.
Descrever os tipos de operações realizadas em uma imagem conforme seu respectivo objetivo e sua 
aplicabilidade.
Esquematizar um exemplo prático de manipulação de imagens utilizando o Python.
Introdução
Neste conteúdo, aprenderemos o que é uma imagem na perspectiva computacional e como determinar um
modelo matemático capaz de representar uma imagem. Estudaremos os elementos que formam uma imagem,
identificando-os e modelando-os quando necessário.
Vamos correlacionar a percepção visual humana com a formação de uma imagem computacional,
identificando em que aspectos a percepção visual humana é superior ou inferior à visão computacional.
Identificaremos os tipos de operações que podem ser aplicadas sobre uma imagem e correlacioná-las com
suas especificidades, aplicabilidades e seus objetivos.
• 
• 
• 
1. Imagem digital no processo de construção
Processamento de imagem digital
A manipulação de uma imagem via computador
é denominada processamento digital de
imagem. Nesse processamento, a entrada e a
saída são uma imagem. Dentre os objetivos
desse processo, pode-se destacar
melhoramento da representação visual da
imagem, redução de ruídos, aplicação de filtros
etc. Além disso, esse processo fornece
recursos para a interação de imagens.
Representação digital
Representar uma imagem digitalmente é codificá-la para que o computador consiga interpretar, processar e
reproduzir a informação de modo visual. Para isso, a imagem digital conta com pixel, resolução, cor,
compressão, formatos.
De acordo com Solomon e Breckon:
Uma imagem digital pode ser considerada uma representação discreta de dados que processam
informação espacial e de intensidade de cor. A informação espacial faz referência tanto ao layout da
imagem quanto à intensidade e à cor. 
(SOLOMON; BRECKON, 2013, n.p)
A informação espacial de uma imagem bidimensional e monocromática é dada por um par de coordenadas 
(x,y), e a intensidade da cor é expressa por f(x,y). O valor de f(x,y) também é entendido como brilho ou níveis
de cinza da imagem.
Esse tipo de construção permite que uma imagem digital seja representada matricialmente, em que cada
elemento da matriz corresponde ao nível de cinza e o índice do elemento faz alusão à posição do ponto da
imagem. Por convenção, a origem da imagem fica no canto superior esquerdo.
Organização dos eixos para representação de uma imagem digital.
Os elementos f(x,y) da matriz são os elementos da imagem, ou elementos da figura, mais conhecidos como
pixels (Picture elements). Em grande parte das imagens, os valores dos pixels fazem referência a alguma
resposta física no espaço real bidimensional (2D).
No entanto, para determinadas aplicações, os pixels não fazem correspondência ao espaço físico, mas, sim, a
uma sequência temporal dessa imagem. Os pixels passam a ser tratados como voxels (pixels volumétricos),
pois expressam a menor localização espacial no volume tridimensional (3D).
A resolução de uma imagem pode ser estabelecida a partir desses três aspectos:
Resolução espacial
É dada pelo número de colunas (C) e pelo
número de linhas (R) de uma imagem; dessa
forma, o número de pixels da imagem é dado
por C x R. Esse valor está associado à
amostragem do sinal da imagem.
Resolução temporal
É dada pelo número de imagens obtidas em um
intervalo de tempo determinado. Em algumas
situações, é expresso em quadros por segundo
(qps).
Resolução por bit
É dada pelo número de bits binários
necessários para que a imagem seja
armazenada e expressa o número de valores
possíveis de intensidade/cor que um pixel pode
ter.
Uma imagem com intensidade/cor de bits equivalente a 1, por exemplo, possui pixels de duas cores: preto e
branco. Quando a intensidade/cor de bits é igual a 8, possui 28 ou 256 valores possíveis. Imagens coloridas
são formadas por três canais de cores, o que representa mais de 16 milhões de possibilidades de cores.
Exemplo
O número de bits necessários para armazenar uma imagem digitalizada de 64 x 64 pixels com 32 níveis
de cinza é de 20.480 (64 x 64 x 5). 
Para estipular o número de bits, b, para armazenar uma imagem, basta determinar o número de pixels da
imagem (resolução espacial) e multiplicá-lo pela profundidade da imagem (m), que é dada em função do nível
de cinza (G=2m).
A construção de uma imagem visualizada pela conversão de um conjunto de dados é feita por meio de um
mapa de cor. Segundo Solomon e Breckon (2013), um mapa de cor aloca um tom específico de cor a cada
nível numérico na imagem para a produção de uma representação visual dos dados.
O mapa de cor com tons de cinza (escala de cinza) é um dos mais usuais. Nesse caso, cada pixel corresponde
a f(x,y), em que:
Nesse intervalo, na escala de cinza, 0 representa o preto, Lmax é o branco, e os demais valores expressam
tons de cinza.
Em imagens coloridas, f(x,y) é apresentada por três componentes. Geralmente, são os componentes de cor
RGB:
Vermelho (V) Verde (V)
Azul (A)
Dessa forma, cada valor do pixel passa a ser associado a uma combinação linear das cores básicas (R, G, B).
Imagens RGB geralmente são associadas às matrizes 3D. Vale destacar que um pixel azul não precisa usar
somente o canal azul; pode usar também percentuais menores dos outros canais, mas é evidente que, nesse
caso, o canal azul terá mais relevância. Repare:
Modelo de cor RGB formulado pela CIE – Commission Internationale de l’Éclairage –
Comissão Internacional de Iluminação
A construção das cores no mapa RBG é baseada no modelo de cor RGB formulado pela CIE de 1931. Esse
parâmetro auxilia a organização e a padronização para a exibição de imagens. No entanto, o mapa RGB não
apresenta uma percepção linear das cores.
CIE de 1931
Commission Internationale de l’Éclairage – Comissão Internacional de Iluminação – Comissão que
especificou o espaço de cor RGB baseado nos valores quantitativos definidos entre distribuições de
comprimentos de onda no espectro visível eletromagnético e cores fisiológicas percebidas na visão de
cor humana.
O mapa RGB não é único para dar efeito de cor à imagem, pois o mapa HSV (Hue: matiz ou tonalidade; 
Saturation: saturidade; Value: valor ou intensidade.) também é muito usado e é mais prático quanto à
linearidade, pois, nesse mapa, as alterações seguem um gradiente de cor expresso em matiz ou tonalidade,
que representa o comprimento de onda da cor; seguido da saturação, que é a pureza da cor, alterada pela
quantidade de luz branca nela misturada; e do valor, que é o brilho ou a luminância da cor.
Uma questão importante em processamento de imagens é a escolha do formato de armazenamento,
pois implica diretamente a sua compressão. A compressão de uma imagem possui vantagens
naquilo que diz respeito ao espaço de memória que ocupa no seu armazenamento, ou ainda no seu
tempo de transmissão.
No entanto, junto à compressão, é comum termos perdas. Na técnica de compressão com perda, informações
redundantes são removidas. Há determinadas informações que podem ser removidas sem que expressem
mudanças aparentes na imagem.
A determinação dessas informações pode ser caracterizada de dois modos:
Pequenas informações, que expressam detalhes da imagem.1. 
Redução do número de níveis de cor/escalas que não sejam perceptíveis a olho humano.
Dependendo do formato escolhido para salvar uma imagem, a compressão é realizada naturalmente.
Para armazenar uma imagem, várias técnicas sãoselecione a opção correta.
A
Trata-se de uma transformação de coordenadas, pois são as coordenadas que se movimentam em relação ao
carro.
B
Trata-se de uma transformação de escala, pois o efeito do movimento é obtido pela mudança dos elementos
da paisagem, simulando que o carro está se distanciando deles.
C
A transformação de rotação é a que melhor se encaixa nesse caso, pois dá a impressão de que o carro está
em movimento.
D
A transformação geométrica se enquadra nesse caso, pois transformações como a de translação e de escala
auxiliam a simular o movimento do carro.
E
A translação é a transformação que se enquadra nesse caso, pois não ocorre nem rotação nem mudança de
escala.
A alternativa A está correta.
Quando um objeto permanece parado em relação às suas coordenadas, trata-se de um caso de
transformação de coordenadas. No caso do exemplo, quem de fato está em movimento é o fundo do
cenário em relação ao carro, simulando, assim, que ele esteja se deslocando.
4. Conclusão
Considerações finais
Neste conteúdo, vimos os elementos fundamentais para construção, processamento e manipulação de uma
imagem digital, correlacionando uma imagem digital com a percepção visual humana.
Estudamos como modelar uma imagem matematicamente e seu processo de formação. Observamos que
determinados problemas em imagens são oriundos desse processo. Além disso, constatamos possíveis
soluções para esses problemas.
Aprendemos como uma imagem pode ser manipulada segundo as operações que realizamos sobre elas.
Vimos que certas operações podem ajudar a extrair características de uma imagem ou melhorá-la e que os
processos de filtragens podem ser diversos e aplicados em domínios diferentes.
Podcast
Ouça um resumo dos principais assuntos com exemplos práticos sobre o processamento digital de
imagens, como em jogos, filtros em aplicativos de redes sociais, entre outros.
Conteúdo interativo
Acesse a versão digital para ouvir o áudio.
Explore +
A sociedade atual precisa (cada vez mais) de aplicações computacionais. Veja como Luiz Felipe Velho, Jorge
Arigony Neto e Jefferson Cardia Simões fizeram um estudo sobre aplicação de filtros em imagens para fins
geocientíficos no artigo Utilização do Filtro LEE na redução do Speckle em imagens SAR usadas na
determinação da velocidade, publicado na Revista Brasileira de Cartografia, em 2012.
Referências
AZEVEDO, E.; CONCI, A. Computação Gráfica: Teoria e prática. Rio de Janeiro: Campus, 2003.
 
AZEVEDO, E.; CONCI, A.; LETA, F. R. Computação Gráfica: Teoria e prática. V. 2. Rio de Janeiro: Elsevier, 2008.
 
GONZALEZ, R. C.; WOODS, R. E. Processamento Digital de Imagens. 3. ed. São Paulo: Pearson, 2010.
 
GONZALEZ, R. C.; WOODS, R. E. Processamento de Imagens Digitais. São Paulo: Blucher, 2000.
 
SOLOMON, C.; BRECKON, T. Fundamentos de Processamento Digital de Imagens. Uma Abordagem Prática
com Exemplos em MATLAB. Rio de Janeiro: LTC, 2013.
 
STEMKOSKI, L.; PASCALE, M.: Developing Graphics Frameworks with Python and OpenGL. Taylor & Francis,
2021.
	Processamento de imagem digital
	1. Itens iniciais
	Propósito
	Preparação
	Objetivos
	Introdução
	1. Imagem digital no processo de construção
	Processamento de imagem digital
	Representação digital
	Resolução espacial
	Resolução temporal
	Resolução por bit
	Exemplo
	Vermelho (V)
	Verde (V)
	Azul (A)
	Atenção
	Bitmap: Bit Map Picture (imagem em mapa de bit)
	Graphics Interchange Format (Formato para Intercâmbio de Gráficos)
	Joint Photographic Experts Group (Grupo Misto de Especialistas Fotográficos)
	Portable Network Graphics (imagens portáteis para rede)
	Tagged Image (File) Format (Formato de Arquivo de Imagem com Rótulo)
	GIF
	JPEG
	BMP
	PNG
	TIF/TIFF
	0
	1
	Relações entre a imagem digital e a percepção visual
	Adaptabilidade
	Tomada de decisão
	Qualidade das medições
	Velocidade de resposta
	Espectro visível
	Dimensão de objetos
	Exemplo
	Digitalização (contínuo x discreto): amostragem, discretização e quantização
	Discretização
	Digitalização
	Reconstrução
	Codificação
	Decodificação
	Atenção
	Conteúdo interativo
	(a)
	(b)
	(c)
	(d)
	Atenção
	Formação e tratamento de aliasing (alias) e ruídos
	Função de propagação de ponto
	Função do objeto
	Ruído
	Operador de convolução
	Projeção perspectiva
	Projeção ortográfica
	Ruídos e aliasing
	Ruído de captura
	Ruídos de amostragem
	Ruídos de processamento
	Ruídos de codificação de imagens
	Oclusão de cena
	Ruídos sal e pimenta
	Ruído gaussiano
	A digitalização da imagem
	Conteúdo interativo
	Verificando o aprendizado
	Questão 1
	2. Tipos de operações feitas em imagem
	Operações sobre a imagem
	Pontuais
	Locais
	Globais
	Aplicações do processamento de imagens
	Operações pontuais
	Unárias
	Binária
	Ternárias
	Múltiplas imagens
	Operações aritméticas
	Adição de constante C = 80 em X (a)
	Adição (b)
	Subtração (c)
	Exemplo
	Operações lógicas
	(X) XOR (Y) (a)
	NOT (X) (b)
	(NOT X) AND (Y) (c)
	Topologia digital
	Conectividade-de-4
	Conectividade-de-8
	Conectividade-de-m (conectividade mista)
	Transformadas
	Transformações geométricas
	Primeira operação
	Segunda operação
	Translação
	Escala
	Rotação
	Reflexão ou espelhamento
	Cisalhamento
	Interpolação de uma imagem
	Curiosidade
	Interpolação por vizinho mais próximo
	Interpolação bilinear
	Interpolação bicúbica
	Filtros
	Filtragem no domínio espacial
	Filtros estatísticos
	Filtros gaussianos
	Filtro passa-alta
	Filtragem no domínio de frequência
	Etapa 1
	Etapa 2
	Etapa 3
	Passo 1
	Passo 2
	Passo 3
	Passo 4
	Passo 5
	Passo 6
	Passo 7
	Filtro passa-baixa
	Filtro passa-alta
	Operações em imagens
	Conteúdo interativo
	Verificando o aprendizado
	Questão 1
	Questão 2
	3. Manipulação de imagens usando o Python
	O Python e o pacote OpenCV
	Conteúdo interativo
	Importação de pacotes
	numpy
	cv2
	skimage
	google.colab.patches
	Carregar e exibir imagens
	Conteúdo interativo
	Redimensionar a imagem
	Conteúdo interativo
	Aplicar a operação de rotação e translação
	Conteúdo interativo
	Rotação
	Translação
	Verificando o aprendizado
	4. Conclusão
	Considerações finais
	Podcast
	Conteúdo interativo
	Explore +
	Referênciasutilizadas a fim de que a compressão seja realizada,
provocando a redução das informações brutas, de modo que a nova imagem seja verossímil. No entanto, há
algumas compressões que reduzem drasticamente o número de informações que compõem a imagem e
acabam causando perda de qualidade. 
Algumas técnicas de compressão permitem que a imagem original seja restaurada perfeitamente; nesse caso,
chamamos de compressão sem perda. Observe a diferença entre as duas técnicas aplicadas na mesma
imagem:
Vale mencionar que modelos de armazenamento de vídeos usam a compressão com perda, pois o volume de
informação produzida por essa mídia é muito alto.
2. 
Atenção
O modelo de compressão pode prejudicar uma eventual tentativa de tratamento ou análise da imagem. 
Encontramos modelos padronizados de armazenamento de imagens, que são os seus formatos. O formato de
uma imagem expressa um conjunto de informações, um cabeçalho de arquivo com a forma exata do
armazenamento dos dados e os valores numéricos de pixels. Há um número grande de formatos de imagens
mais adequados segundo a finalidade da aplicação da imagem.
Dentre os formatos bidimensionais, os mais usuais são:
1
Bitmap: Bit Map Picture (imagem em mapa de bit)
É um dos formatos de imagens mais antigos e simples e foi desenvolvido pela Microsoft para o
sistema operacional do Windows. Esse formato permite o uso de milhões de cores e preserva os
detalhes; no entanto, ocupa muito espaço para o armazenamento, já que não utiliza compressão.
 
2
Graphics Interchange Format (Formato para Intercâmbio de Gráficos)
É um formato básico bastante usado, pois possui uma tecnologia que permite a imagem ser
carregada gradualmente, embora tenha uma limitação de cores de 256 níveis de cinza ou de cores. É
um formato que possui uma excelente taxa de compressão sem perda. Além disso, possibilita ter
imagens com fundo transparente e pode ser uma mídia não estática.
 
3
Joint Photographic Experts Group (Grupo Misto de Especialistas Fotográficos)
É um dos mais famosos formatos e possui uma compressão ajustável; geralmente, sua compressão é
com perda, mas existe a variante sem perda. Mesmo com a compressão mínima, não ocupa tanto
espaço em seu armazenamento, permite imagens coloridas RGB de até 24 bits e, em algumas
aplicações especiais, de até 36 bits. Esse formato é extensivamente usado em meios digitais, mas
não possui canal de transparência.
 
4
Portable Network Graphics (imagens portáteis para rede)
É um modelo projetado para substituir o GIF, reúne as principais características do GIF, como
animação e fundo transparente. Possui alta taxa de compressão sem perda de qualidade e ainda
suporta milhões de cores.
 
5Tagged Image (File) Format (Formato de Arquivo de Imagem com Rótulo)
É um modelo geralmente usado em aplicações profissionais (finalidades médicas, industriais ou
científicas). Esse formato trabalha com grande quantidade de cores e possui uma imagem de alta
qualidade; por consequência, aumenta de modo considerável o tamanho dos seus arquivos, mas
oferece alta taxa de compressão sem perda de informações.
 
Confira um resumo dos formatos citados:
GIF
Denominação: Graphics Interchange Format
Propriedades: Compressão sem perda.
JPEG
Denominação: Joint Photographic Experts Group
Propriedades: Compressão com perda, mas há variantes sem perda.
BMP
Denominação: Bit Map Picture
Propriedades: Compressão sem perda, mas há variantes com perda.
PNG
Denominação: Portable Network Graphics
Propriedades: Compressão sem perda.
TIF/TIFF
Denominação: Tagged Image File Format
Propriedades: Existem variantes comprimidas e descomprimidas.
Para imagens fotográficas, os formatos JPEG e TIF são mais adequados; já para gráficos, textos, logotipos,
imagens com cores ou detalhes limitados de modo geral, os formatos GIF e PNG são mais indicados. O TIF em
especial também pode ser usado para imagens com algum tipo de limitação, pois é adaptável à maioria dos
requisitos de armazenamento.
O tipo de imagem também deve ser considerado para a escolha do formato, já que podemos associar outros
aspectos à imagem, além da resolução de bits.
Imagens binárias são conjuntos bidimensionais geralmente expressos em matrizes que alocam um valor
numérico a cada pixel da imagem. Esse valor numérico é:
0
Para representar o preto, pixel de fundo ou
desligado.
1
Para representar o branco, pixel frontal ou
ligado.
Não há valor intermediário. Muitas vezes, essas imagens são conhecidas como imagens lógicas e facilmente
representadas por uma sequência de bits, embora seja mais comum a representação por inteiros de 8 bits nos
formatos comuns.
Imagens em escala de cinza (ou de intensidade e cinza) são conjuntos expressos em matrizes que alocam um
valor numérico a cada pixel que representa a intensidade de um ponto. Esse tipo de imagem possui o intervalo
de valores do pixel limitado pela resolução do bit da imagem, sendo armazenada como imagem de N bits em
dado formato.
Imagens RGB ou de cores reais são conjuntos expressos em matrizes tridimensionais que alocam três valores
numéricos a cada pixel. Podemos considerar imagens desse tipo como três planos 2D distintos, de modo que
sua dimensão seja:
Observe que corresponde ao número de coluna da imagem e corresponde ao número de linhas da
imagem.
Imagens de ponto flutuante não armazenam valores inteiros de cores, mas, sim, um número em ponto
flutuante, como o próprio nome sugere. Os valores armazenados podem representar um valor medido como
parte da imagem (científica, por exemplo) que não seja apenas a intensidade ou cor. Também pertencem a um
intervalo definido pela precisão de ponto flutuante da resolução de bit da imagem.
Relações entre a imagem digital e a percepção visual
O sistema visual humano é muito complexo, e
seu funcionamento envolve muitas questões,
que vão da trajetória da luz no olho, que
atravessa a córnea em direção à íris, até os
padrões eletroquímicos interpretados pela
atividade do sistema nervoso no cérebro. Por
isso, criar um modelo que execute os mesmos
processos ou processos similares é muito difícil.
Qualquer processo digital que pretende simular
ou representar a visão humana deve considerar
que o sistema visual humano é adaptativo, 
veloz, integrado e dependente diretamente do cérebro e de outros órgãos do corpo humano.
Logo, um sistema que promova a visão computacional deve ter adaptabilidade, realizar tomadas de decisões,
ter velocidade na resposta e possuir qualidade para promover a percepção dos elementos que compõem o
cenário observado.
Agora, vamos analisar a diferença entre a visão humana e computacional em cada um desses pontos.
Adaptabilidade
Um sistema adaptativo se ajusta ou modifica operações automaticamente conforme os parâmetros do
ambiente. Deve ser capaz de repetir processos com graus elevados de precisão a partir de parâmetros
predefinidos considerando novas situações, como se fosse “olhar novamente” o mesmo cenário com a
finalidade de aprimorar as informações.
Vamos lá, então, diferenciar esses dois sistemas!
Um ser humano é capaz de reconhecer um objeto parcialmente escondido, ou ser sugestionado pela
formação da imagem. Considere este exemplo:
Imagem formadas por pontos.
Na imagem, temos a percepção de circunferências concêntricas, mas ela é formada apenas por pontos. Um
sistema computacional é capaz de realizar essa leitura, mas deverá ter previamente estabelecido relações de
métricas que permitam tal reconhecimento.
Tomada de decisão
O ser humano realiza a leitura de um cenário com base no seu contexto, utilizando seu conhecimento. Logo, a
visão está associada diretamente a uma interpretação pessoal. Essa tomada de decisão é muito difícil de ser
representada computacionalmente. A visão computacional apenas classifica os elementos de um cenário ou
uma imagem segundo a sua programação.
Em alguns aspectos, a visão computacional é superior à visão humana, principalmente no que diz respeito à
qualidade das medições e à velocidade de resposta. Vejamos!
Qualidade das medições
Em algunsaspectos, a visão computacional é superior à visão humana, principalmente no que diz respeito à
qualidade das medições e à velocidade de resposta.
Sistema visual humano 
É altamente dinâmico e capaz de
reorganizar e adaptar sua perspectiva
rapidamente.
Sistema computacional 
Pode ter limitações que o impeçam de
reconhecer um elemento se estiverem
em condições diferentes das
programadas inicialmente.
A qualidade das medições da visão computacional depende da regularidade dos resultados e do nível de
exatidão. Como a visão computacional é quantitativa, obtém parâmetros mais consistentes para tomada de
decisão. Enquanto a visão humana tem por base valores relativos, a visão computacional é capaz de discernir
facilmente 256 tons de cinza, por exemplo, sendo capaz de ampliar para 1.024 em determinadas aplicações
específicas.
Além disso, a visão computacional não comete erros oriundos de fadiga, por exemplo.
Velocidade de resposta
Confira a superioridade da visão computacional quanto à velocidade de resposta:
Espectro visível
Outra vantagem que a visão computacional possui em relação à visão humana está relacionada ao espectro
visível. Observe:
Dimensão de objetos
Uma grande diferença entre o sistema visual humano e o sistema de visão computacional está na capacidade
de dimensionar um objeto. A dimensão de objetos está associada à capacidade de perceber distâncias, que
está ligada às referências físicas. A visão computacional precisa estar estruturada para uma construção
tridimensional. Muitas vezes, é necessário um conjunto de câmaras para essa percepção. O sistema visual
humano é integrado aos demais órgãos e, por consequência, aos músculos. 
Exemplo
Considere a ação de chutarmos uma bola. Vemos a bola e construímos a ideia e a execução do chute.
Em um sistema computacional, a câmera realiza a função dos olhos, captando a cena; o computador
realiza a função do cérebro, processando a informação; e a perna mecânica realiza a ação necessária. 
Visão humana 
Percebe 30 quadros (imagens) por segundo.
Esse número pode variar de acordo com as
condições físicas do ambiente e da pessoa. 
Visão Computacional 
Capta, de modo geral, mais de 300
quadros por segundo. As variações
estão relacionadas ao tamanho da
imagem e ao tempo de captação da
imagem realizada pelo equipamento.
Visão humana 
O ser humano percebe apenas o espectro
que varia de 3,94 ∙ 1014Hz até 7,69 ∙ 1014Hz,
denominado espectro de luz visível. A visão
humana está sujeita a fatores subjetivos, e a
mesma cor pode ser interpretada de modo
diferente segundo o observador e segundo a
cor dos elementos que compõem o cenário.
Visão Computacional 
O “espectro visível” computacional é
muito maior. A visão computacional é
capaz de perceber faixas de ondas
eletromagnéticas que vão de ondas de
rádio, micro-ondas até raios gama. A
visão computacional é mais precisa
quanto à cor.
Digitalização (contínuo x discreto): amostragem,
discretização e quantização
Uma imagem pode ser considerada a ideia de uma coisa ou uma aquisição dos sentidos oriunda de uma
representação do mundo real. Seja adquirida, seja gerada, consiste em qualquer forma visual que expressa
uma ideia.
As imagens podem ter origens diversas. Podem ser captadas pela percepção direta de um emissor de luz,
pela reflexão da luz de um objeto iluminado, ou ainda pela percepção da luz por um objeto translúcido. Depois
de captada, seja pelo olho humano, seja por um dispositivo, como a câmera, a imagem passa a ser processada
pelo cérebro ou pelo computador.
Uma imagem digital consiste na formação de sua representação, de modo que os computadores possam
utilizá-la. Para que a imagem possa ser processada, usada computacionalmente, deve primeiro ser
digitalizada, isto é, convertida do mundo real para o digital. O mundo real é, por natureza, contínuo;
portanto, infinito. Já o mundo digital é discreto, finito. 
(AZEVEDO; CONCI; LETA, 2008, n.p)
Os termos a seguir estão ligados ao processo de conversão. Confira!
Discretização
É o processo de conversão da representação de uma imagem contínua para a representação discreta.
Digitalização
É o processo de conversão da representação de uma imagem contínua para a representação discreta
quando esta for em uma base numérica e em números inteiros positivos.
Reconstrução
É o processo de conversão de uma imagem discreta para uma contínua.
Codificação
É caracterizada pela modificação das características de um sinal com a finalidade de torná-lo mais
adequado para uma aplicação específica.
Decodificação
É o processo oposto ao de codificação.
Muitas vezes, não é possível reconstruir a imagem original, então busca-se efetuar uma aproximação para a
imagem original.
Somente depois da discretização, é possível armazenar uma imagem. No processo de armazenamento de uma
imagem, a codificação é realizada. É neste momento que o conjunto de dados obtidos na discretização é
organizado no formato do arquivo.
Quando a imagem discretizada é igual à codificada, o processo de codificação ou decodificação é
sem perda.
O esquema a seguir mostra as etapas do processamento de imagem digital, indo, de modo sucinto, da
imagem contínua até a imagem codificada em um arquivo. Considera também o processo contrário, isto é, do
arquivo até a imagem contínua.
Etapas do processamento de imagem digital.
Para representar uma imagem do mundo contínuo no computador, é necessário realizar a discretização. Uma
maneira de representar uma imagem matematicamente é usar a seguinte função:
Na função, (x,y) são as coordenadas de um ponto na imagem e f(x,y) representa a iluminação e a reflexão do
objeto, ou seja:
Observe que i(x,y) é a função da iluminação e r(x,y) é a função da reflexão do objeto.
De modo geral, (x,y) são números reais, em que os intervalos x, [0,Lx ], y e [0,Ly ], na função f(x,y), também
costumam ser contínuos.
O processo de discretização que ocorre no domínio é chamado de amostragem, e o processo de discretização
que ocorre no contradomínio é chamado de quantização.
Atenção
É necessário, primeiro, realizar a amostragem e, depois, a quantização. 
Suponha que o objetivo seja representar uma reta, conforme os gráficos a seguir.
Conteúdo interativo
Acesse a versão digital para ver mais detalhes da imagem
abaixo.
Representação de reta (a) contínua e (b), (c) e (d) discretas.
Vamos analisar a imagem:
(a)
O primeiro passo é traçar os limites do domínio.
Note que [0, 10] é contínuo.
(b)
O intervalo pode ser representado por 4 pontos.
(c)
O intervalo pode ser representado por 11
pontos.
(d)
O intervalo pode ser representado por 21
pontos.
Na amostragem, a distância entre os pontos x1,x2, x3 ...xn pode tomar intervalos iguais (uniformemente
espaçados), ou as distâncias entre os pontos (x1,f(x1)),(x2 ,f(x2)),(x3 ,f(x3)) ...(xn ,f(xn )) podem ser distâncias
iguais.
No caso da reta, ocorrem ambas as situações. A amostragem pode obedecer a muitos critérios, pode
considerar máximos, mínimos. Em determinados momentos, é necessário mudar os padrões de amostragem
ou quantização.
No processo de reconstrução, nem sempre é possível reproduzir exatamente a imagem contínua. Na
reconstrução, na maioria das vezes, é necessário realizar uma aproximação ou interpolação entre os
pontos amostrados.
Na interpolação linear, a média entre os pontos mais próximos da amostra é calculada. A interpolação também
pode ser realizada com outras técnicas, como a interpolação quadrática feita por funções do 2º grau ou
interpolação cúbica feita por funções cúbicas.
Considerando que uma imagem, para ser processada pelo computador, precisa passar pelo processo de
amostragem e quantização, também é preciso estruturar as questões das cores. Numa escala de cinza, por
exemplo, cada pixel é representado no computador como um número inteiro que corresponde à intensidade
de luz no ponto.
A cor do pixel pode ser representada como um inteiro de 8 bits variando de 0 a 255:
0 representando o preto
255 representando o branco
Outros valores, representando tonalidadesde cinza
A taxa de amostragem determina a resolução da imagem, isto é, quantos pixels terá a imagem, e a
quantização determina quantos níveis de intensidade entre o valor mínimo e o máximo serão necessários. As
taxas de amostragem e quantização geralmente são limitadas pelos dispositivos de captação (aquisição) da
imagem. Repare:
Imagem monocromática.
A imagem apresentada é monocromática, e sua amostragem foi feita por 100 pontos. Cada ponto da imagem
possui um valor quantizado, que é igual a 0 ou a 1. Isso significa que cada pixel é quantificado segundo esses
valores.
Em escala de cinza.
1. 
2. 
3. 
A imagem representa a mesma imagem anterior em escala de cinza. Da mesma forma que a anterior, a
imagem pode ser representada por uma matriz N x M; nesse caso, 10 x 10, em que cada elemento da matriz
corresponde aos valores dos pixels. Assim, f(0,3) = 1, f(2,5) = 1, f(1,1) = 50, por exemplo.
Quando geramos uma imagem digital, geralmente, os elementos são digitalizados ao longo de x e y, e na
intensidade tonal z igual f de (x,y). Logo, é realizada uma amostragem que geralmente é uniforme de f(x,y). A
nitidez da imagem contínua está diretamente ligada ao valor de N x M. Quanto maior for esse valor, mais nítida
é a imagem digital, pois armazena mais detalhes; no entanto, é necessário um espaço maior para seu
armazenamento.
Atenção
É importante balancear perda de informação e espaço de armazenamento ao se escolher o número de
tons e a resolução N x M. 
A escala é um parâmetro que surge quando se realiza alguma medida sobre os objetos de um cenário. A
escala pode ser medida matematicamente, bem como a resolução. Entretanto, no caso da escala, as medidas
possuem muitas variações. Caso a escala seja um valor desconhecido, para obtê-la, basta estimar algumas
medidas reais na imagem digital e realizar a média das razões entre as distâncias e o número de pixels
correspondente.
Esse processo permite realizar medições na imagem com padrão aceitável. Além disso, é possível determinar
duas resoluções em uma imagem fazendo referência a duas dimensões – horizontal e vertical.
A resolução e o número de pixels interferem diretamente na visualização da imagem. Observe:
Imagens de tamanhos reais iguais, mas com resoluções diferentes.
Se duas imagens com tamanhos reais iguais são capturadas com resoluções diferentes, terão números de
pixels diferentes e, por consequência, na tela de um mesmo dispositivo aparecerão de tamanhos diferentes.
Repare:
Imagens de tamanhos reais diferentes e resoluções diferentes.
Se duas imagens com tamanhos reais diferentes são capturadas com resoluções diferentes, de forma a gerar
duas imagens com o mesmo número de pixels, a visualização no monitor será feita com o mesmo tamanho na
tela.
Formação e tratamento de aliasing (alias) e ruídos
A formação de uma imagem pode ser estruturada por um modelo (matemático) que realiza uma representação
funcional de um cenário e objeto. Junto à imagem, ruídos também são captados. Para a formação de uma
imagem, alguns elementos são necessários. São eles:
1
Função de propagação de ponto
Faz referência às características do instrumento que captura a imagem e que opera na presença de
ruído. É uma função que representa a resposta do sistema a uma fonte pontual do plano do objeto,
conhecida como função de propagação de ponto ou função de espalhamento de ponto (PSF – Point-
Spread Function).
 
2
Função do objeto
Faz referência ao objeto; na verdade, à função do objeto. É a função que descreve o objeto cuja
imagem foi capturada e a forma como a luz é refletida por essa estrutura em direção ao instrumento
de captura de imagens.
 
3
Ruído
Expressa os distúrbios externos indesejados que ocorrem durante a captura da imagem. O ruído é
uma função que depende das leis do acaso.
 
4 Operador de convolução
É um operador matemático responsável por interligar a função de espalhamento com função do
objeto.
O dispositivo mais comum para a captação de uma imagem é a câmera CCD (Charge Couple Device), formada
por uma matriz de células semicondutoras fotossensíveis que atuam como capacitores, armazenando carga
elétrica proporcional à energia luminosa. Esse tipo de câmera captura imagens monocromáticas ou coloridas.
A imagem de uma cena captada pela câmera é uma projeção do mundo tridimensional (3D) em uma
representação bidimensional (2D). A capacidade de análise de uma imagem digital está diretamente ligada ao
processo de projeção de 3D para 2D.
O modelo de projeção da câmera transforma coordenadas do mundo real 3D (X,Y,Z) em coordenadas da
imagem 2D (x,y) no plano da imagem. A quantização espacial do plano de imagem em uma grade discretizada
de pixel transforma as coordenadas (x,y) em uma posição de pixel (c,r). De modo geral, as câmeras usam uma
projeção perspectiva, mas a projeção também pode ser paralela (ortográfica).
Projeção perspectiva
Na projeção perspectiva, uma posição (X,Y,Z) na cena é reproduzida na posição (x,y) no plano da imagem
determinado pela distância focal da lente da câmera. Observe:
Projeção perspectiva.
Nessa imagem, f é a distância focal da lente da câmera, isto é, representa a distância entre a lente e o plano
de imagem; os eixos X,Y,Z são as referências para a obtenção das coordenadas do mundo real, enquanto os
eixos x,y são as referências das coordenadas do plano da imagem. De modo geral, x e y são dados por:
Em que Z é a profundidade.
Em toda projeção perspectiva, o tamanho do objeto na imagem capturada depende da distância entre o
objeto e o visor. Quanto mais afastado o objeto estiver, menor ficará na imagem. Essa propriedade é
conhecida como escorço.
Outra questão importante é a convergência. Dependendo do ângulo de captação da imagem, retas paralelas
parecerão convergir para um ponto. Esse ponto é chamado de ponto de fuga.
Na projeção perspectiva, os raios de luz passam por apenas um ponto, e a cena fica invertida no plano da
imagem; porém, esse tratamento é feito pela câmera e não requer muitas estruturas para reorganizar essa
questão.
O processo de reconstrução das coordenadas do mundo real a partir das coordenadas da câmera é um
processo muito difícil de ser realizado, mas é possível de ser aproximado.
Projeção ortográfica
Nesse caso, a imagem não sofre inversão, e sim, uma transformação afim, isto é, as relações geométricas
relativas são mantidas, pois os planos de cena e de imagem são paralelos. Repare:
Projeção ortográfica.
Nessa imagem, o plano da imagem desconsidera a profundidade; assim, as coordenadas (X,Y,Z) do mundo
real passam a ser referenciadas por (X,Y) apenas. Então, o plano da imagem (x,y) é construído por:
Nessa projeção, o tamanho independe da distância do visor, e retas paralelas sempre são preservadas.
Embora o modelo de projeção seja muito importante no processo de formação de imagens, questões como 
resolução espacial e número de bits usados para representar cada pixel também devem ser consideradas para
a formação da imagem final.
Ruídos e aliasing
A formação de ruídos junto à imagem é dos principais problemas no processamento de imagens. O ruído é
uma variação sofrida pelo sinal em torno do seu verdadeiro valor que não pode ser controlada. Essa variação
pode ter origem em questões externas ou no momento de processamento da imagem.
Devido à sua aleatoriedade e frequência de ocorrência, um sistema eficiente de processamento de imagens
introduz técnicas antirruídos em cada etapa do processamento. O ruído pode ter origens diferentes. Veja!
Ruído de captura
Não uniformidade no sensor de captação da imagem, variações de temperatura do sensor, variações
de iluminação, vibração, distorção da lente, imitações de foco e saturação do sensor.
Ruídos de amostragem
Limitações na amostragem e na quantização da intensidade são fontes de ruído na forma de
mascaramento (aliasing ou alias) de representação.
Ruídos de processamento
Limitações na precisão numérica e aproximação matemática.
Ruídos de codificação de imagens
Técnicas de compressão de imagens com perda de informação podenão apresentar problemas no
primeiro momento, mas algumas técnicas de processamento de imagens necessitam da informação
perdida para a sua eficiência.
Oclusão de cena
Ocorre quando alguns objetos são obscurecidos por outros durante o reconhecimento de objetos.
Somos capazes de inferir o conhecimento a partir de uma vista parcial do objeto, mas isso nunca é
tão robusto como o reconhecimento baseado na vista completa. Esse fato limita a informação
disponível sobre a imagem.
Ruídos sal e pimenta
Introdução aleatória de pixels puramente brancos ou pretos na imagem. Geralmente ocorre quando há
falhas em sensores de câmeras. Esse tipo de ruído também é conhecido como ruído impulsivo.
Ruído gaussiano
É uma variação aleatória do sinal de imagem em torno do seu valor esperado. Tem esse nome porque
o valor do sinal obedece a uma distribuição gaussiana; logo, esse modelo descreve a maioria dos
ruídos aleatórios encontrados no processamento de imagens.
Nenhuma imagem digital é uma representação perfeita da cena original, pois possui algum tipo de limitação de
resolução e possui ruído.
Além do ruído, a amostragem pode ser pequena em relação à imagem inicial e, consequentemente, gerar
resultados ineficientes, incapazes de traduzir os detalhes esperados. Nesse caso, ocorre aliasing. Esse
fenômeno pode provocar, por exemplo, uma aparência denteada em linhas ou curvas.
A superamostragem é um modo de reverter os efeitos do aliasing. Nesse caso, a frequência da amostra é
aumentada e a média de várias amostras é obtida.
(a) Imagem com (b) imagem suavizada.
Outra maneira de amenizar ou reduzir o aliasing é suavizar os pixels vizinhos, isto é, agregar cor aos pixels
vizinhos de modo que a intensidade da cor realize uma transição no contorno. Imagens com alta resolução
apresentam menos aliasing quando ampliadas.
A digitalização da imagem
Confira neste vídeo o processo de digitalização da imagem e o tratamento de ruído.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Verificando o aprendizado
Questão 1
A imagem a seguir representa o trecho de uma imagem.
Observe a imagem e leia as sentenças abaixo.
É correto o que se afirma apenas em
A
I.
B
II.
C
I e II.
D
I e III.
E
II e III.
A alternativa E está correta.
Uma imagem monocromática possui um valor quantizado, que é igual a 0 ou a 1, ou ainda 0 ou 255. Logo, a
imagem não pode ser monocromática.
Questão 2
Considerando o que estudamos sobre imagem virtual e percepção visual, leia as sentenças e julgue-as:
 
A velocidade de resposta de um sistema computacional é superior à do sistema humano.
Um sistema computacional realiza tomadas de decisões com a mesma capacidade do ser humano.
Um sistema computacional é capaz de realizar leituras interpretativas e adaptativas, mesmo que as
relações métricas não estejam previamente estabelecidas.
 
É correto o que se afirma apenas em
A
I.
B
II.
1. 
2. 
3. 
C
III.
D
I e II.
E
I e III.
A alternativa A está correta.
O ser humano realiza a leitura de um cenário com base em seu contexto, utilizando seu conhecimento.
Logo, a visão está associada diretamente a uma interpretação pessoal. Essa tomada de decisão é muito
difícil de ser representada computacionalmente.
A qualidade das medições da visão computacional depende da regularidade dos resultados e do nível de
exatidão. Como a visão computacional é quantitativa, obtém parâmetros mais consistentes para tomada de
decisão.
2. Tipos de operações feitas em imagem
Operações sobre a imagem
As operações em imagens digitais podem ser realizadas sob três perspectivas:
Pontuais
Quando são realizadas nos pixels.
Locais
Quando são feitas em parte da imagem.
Globais
Quando são realizadas na imagem inteira.
De modo geral, podemos classificar as operações em imagens segundo o tipo de operações realizadas:
aritméticas, geométricas, booleana, de convolução, filtragem, linear, não linear, morfológicas etc.
Aplicações do processamento de imagens
Podemos destacar muitas aplicações de processamento de imagens, como captação da fotografia, imagens
de satélite, impressão, processamento de imagens médicas, detecção de face ou de objeto e biometria. As
aplicações variam segundo as operações realizadas sobre as imagens; no entanto, todas visam identificar ou
ressaltar um atributo da imagem, ou ainda melhorar a qualidade de visualização. A seguir, vamos falar sobre
essas operações.
Operações pontuais
São as mais básicas no processamento de imagens, pois mapeiam os valores individuais dos pixels na imagem
de entrada a pontos correspondentes na imagem de saída.
Uma das aplicações mais básicas para esse tipo de operação é a alteração da cor dos pixels; no entanto,
também é possível fazer alterações de formas e contrastes em objetos por meio dela. Embora as funções
pontuais envolvam apenas pixels, é possível considerar aspectos globais da imagem.
As operações pontuais podem ser:
Unárias
Quando envolvem apenas uma imagem.
Binária
Quando envolvem duas imagens.
Ternárias
Quando envolvem três imagens.
Múltiplas imagens
Quando envolvem mais de três imagens.
As operações binárias mais comuns são as aritméticas soma, subtração, multiplicação e divisão.
As operações pontuais são operações realizadas em pixels. São conhecidas pela rapidez, simplicidade e
praticidade na execução. Uma operação pontual qualquer pode ser visualizada como um mapeamento de pixel
da imagem original para a imagem processada, em que cada pixel (xi,yi) sofre alguma alteração de cor,
geralmente.
Operações em pixels também podem acarretar funções globais. Para isso, basta considerar algum elemento
que faça considerações globais, como o histograma, por exemplo.
O histograma é uma função estatística que, para cada nível de tonalidade, calcula quantos pixels existem
naquela tonalidade. 
(AZEVEDO; CONCI; LETA, 2008, n.p)
Com base na representação matricial de uma imagem, pode-se manipular uma imagem na perspectiva
numérica por meio de operações aritméticas e lógicas.
Operações aritméticas
As operações aritméticas são adição, subtração, multiplicação e divisão. Possuem aplicabilidade no ajuste de
contraste, mistura e na discriminação de uma imagem de outra, por exemplo.
De modo geral, para efetuarmos operações aritméticas em duas imagens, devemos considerar que elas
devem ter as mesmas dimensões e ser do mesmo tipo. Para efetuar uma operação aritmética entre duas
imagens, X e Y, ambas devem ser M x N, pois:
Em que Isaída é a imagem resultante da operação, IX é a imagem X, IY é a imagem Y, Op é a operação
aritmética, i = {0,...,M-1} e j = {0,...,N-1}.
Para elucidar as operações aritméticas, vamos usar as imagens X e Y a seguir. Essas imagens representam
uma matriz com pixels em escala de cinza variando de 0 a 255.
Imagem \(X\) e Imagem \(Y\) utilizadas como exemplo.
A adição ou subtração de um valor constante C a cada posição de pixel aumenta ou diminui o valor do pixel e,
por consequência, realiza o ajuste de contraste. Pela adição de imagens, também é possível avaliar ruídos na
imagem, considerando a média dos valores, e, pela subtração sucessiva de uma mesma imagem em um vídeo,
é possível identificar movimentos.
Adição de constante C = 80 em X (a)
Para cada valor do pixel na imagem X, 80 foi
adicionado. Note que a imagem ficou mais
clara.
Adição (b)
Representa a adição entre as imagens X e Y.
Subtração (c)
A subtração entre duas imagens evidencia a
diferença entre elas.
Nessas duas operações, há um cuidado especial com os valores, pois é possível encontrar resultados
superiores a 255 (overflow) ou inferiores a 0 (underflow).
Comumente, nessa situação, os resultados são truncados. Todos os valores maiores do que 255 assumem
255 e todos os valores menores do que 0 assumem 0.
No entanto, é possível estabelecer um reescalonamento para a imagem, que é adequar os valores resultantes
para a escala permitida, mas isso significa converter todos os pixels da imagem, de forma que o limite inferior
do valor do pixel da imagem seja 0 e o limitesuperior seja 255. Assim:
Em que r é a cor resultante do escalonamento, tmax é o tom máximo da imagem, tmin é o tom mínimo da
imagem, e t é o tom do pixel reescalonado.
A multiplicação e a divisão também podem ser usadas para realizar ajustes de contrastes.
Exemplo
A multiplicação por 1,25 representa um aumento em 25% no contraste, enquanto a divisão por 2 consiste
em uma redução de 50% no contraste. A divisão também pode ser usada para identificar a diferença
entre duas imagens. Quando o resultado da divisão é igual a 1, os pixels são iguais. 
No caso de imagens coloridas, as operações são realizadas em cada canal. E, assim como na escala de cinza,
os valores resultantes de pixels devem permanecer correspondentes aos tipos de tamanhos e dados.
Operações lógicas
As operações lógicas também são chamadas de operações booleanas e, geralmente, são utilizadas em
imagens binárias. Sua aplicabilidade está associada à extração de características e à análise de formas. As
operações lógicas são efetuadas entre bits correspondentes à representação da imagem em pixels, isto é, bit
a bit.
As principais operações lógicas são:
NOT
AND
OR
XOR
Do mesmo modo que nas operações aritméticas, as operações lógicas geralmente são feitas entre duas
imagens.
Imagens monocromáticas e e operação (c) e (d) .
As imagens X(a) e Y(b) são as referências para as operações lógicas AND, apresentadas na imagem (c), e OR,
apresentadas na (d). A operação AND (“E”) é aplicada na detecção de diferenças em imagens e na detecção
de regiões-alvo. A operação OR (“OU”) pode ser aplicada na detecção de objetos que se movem entre
quadros. O mesmo acontece para a operação XOR:
1. 
2. 
3. 
4. 
(X) XOR (Y) (a)
A operação XOR desconsidera a interseção.
NOT (X) (b)
A operação NOT inverte a representação da
imagem.
(NOT X) AND (Y) (c)
As operações lógicas podem ser combinadas
para obtenção de novas imagens.
Topologia digital
Para efetuarmos as operações locais, é necessário entender alguns aspectos topológicos de uma imagem
digital, pois nas operações locais o valor de um pixel da imagem de saída é função não só do pixel na imagem
de entrada, mas também da intensidade de pixels vizinhos. Logo, é necessário entender o que são pixels
vizinhos e como essa relação pode ser estabelecida.
Considerando um pixel p nas coordenadas (x,y), ele possui quatro vizinhos horizontais e verticais, e as
coordenadas são (x+1,y), (x-1,y), (x,y+1) e (x,y-1). Esse conjunto de pixels é chamado de vizinhança-de-4 de p
e é denotado por N4 (p).
Os vizinhos diagonais de p possuem as coordenadas iguais a (x+1,y+1), (x+1,y-1), (x-1,y+1) e (x-1,y-1) e são
denotados por ND(p). A vizinhança-de-4 de p junto aos vizinhos diagonais formam a vizinhança-de-8 de p.
vizinhança-de-4 de Vizinhança diagonal Vizinhança-de-8 de .
Na imagem anterior, observamos todas as vizinhanças do ponto p. Note que, nos pontos da borda, alguns
pontos da vizinhança sairão da imagem.
A conectividade entre pixels é um conceito importante. Dois pixels são conectados se, além da vizinhança, os
valores dos pixels vizinhos estabelecem algum critério de similaridade. Além disso, a conectividade auxilia a
determinar os limites de objetos e componentes de regiões.
Para determinar se 2 pixels estão conectados, é necessário validar dois passos:
No caso de imagens binárias, por exemplo, V={1}, a conectividade pode ser classificada como:
Conectividade-de-4
Ocorre quando dois pixels, e , assumindo valores em , são
conectados-de-4 somente se pertence ao conjunto 
Conectividade-de-8
Ocorre quando dois pixels, e , assumindo valores em I , são
conectados-de-8 somente se pertence ao conjunto .
Conectividade-de-m (conectividade mista)
Ocorre quando dois pixels, e , assumindo valores em , são
conectados-de-m somente se:
a) pertence ao conjunto , ou
b) pertence ao conjunto e a interseção entre e for
vazia.
A conectividade mista ajuda a reduzir conexões redundantes, conexões por múltiplos caminhos, que
frequentemente aparecem quando a conectividade-de-8 é usada.
Com base na conectividade, podemos estabelecer pixels adjacentes ou um subconjunto de pixels adjacentes;
dizemos que p é um pixel adjacente a um pixel q se eles forem conectados-4(8 ou m). Dizemos que dois
subconjuntos S1 e S2 da imagem são adjacentes se algum pixel em S1 for adjacente a algum pixel em S2.
1° passo 
Identificar se são de alguma forma vizinhos
(N4 (p),ND (p) ou N8 (p)).
2º passo 
Estabelecer se os níveis de cinza
satisfazem algum critério de
similaridade (V = { ...}).
(a) Pixels adjacentes e (b) Subconjuntos adjacentes.
Na imagem (a), os pixels em destaque são adajacentes-4 e, na imagem (b), os dois subconjuntos são
adjacentes-4 e, em ambas as situações, temos V= {1}.
Um caminho na imagem que vai de um pixel p(x,y) a um pixel q(s,t) é uma sequência de pixels distintos com
coordenadas:
Veja que n é o comprimento do caminho, (xi,yi ) e (xi+1),yi+1) são adjacentes, (x = x0,y = y0) e (s = xn,t = yn).
Diz-se que esse é um caminho-4 (m ou 8), dependendo do tipo de adjacência existente ao longo dele.
Se dois pixels p e q pertencem a um subconjunto de pixels S da imagem, então p está conectado a q em S se
existir um caminho de p a q consistindo inteiramente de pixels de S. Um componente conexo de S é o
conjunto de pixels em S conectados a p, para qualquer pixel p em S. Assim, quaisquer dois pixels de um
componente conexo estão conectados um ao outro, sendo que componentes conexos distintos estão
disjuntos.
A rotulação de componentes conectadas é um procedimento importante para análise automática de imagens.
A rotulação consiste na atribuição de rótulos diferentes para regiões disjuntas. Dessa maneira, fica
mais fácil identificar formas, fronteiras e outras características de forma e contorno de objetos de
imagens.
A distância frequentemente é usada em processamento de imagens, principalmente quando falamos de
interpolação. Em muitas ocasiões, a distância euclidiana é utilizada; no entanto, outras métricas podem ser
mais viáveis, como a distância de quarteirão e a distância xadrez, por exemplo.
A distância entre dois pixels, ou função distância, é definida a partir de uma métrica. A métrica usual é
chamada de distância euclidiana.
Considere p,q,z pixels com as coordenadas (x,y),(s,t) e (u,v), respectivamente; leve em conta também que D é
uma função distância ou métrica se:
D(p,q)≥0, em que D(p,q) = 0, se e somente se p = q
D(p,q) = D(q,p)
D(p,z)≤D(p,q) + D(q,z)
A distância euclidiana entre p e q é definida como:
1. 
2. 
3. 
A distância euclidiana não é a única que pode ser empregada. Podemos ainda ter outras métricas para
distância, como Distância City Block ou Quarteirão, ou distância D4:
Distância xadrez ou distância D8:
Transformadas
As transformadas geram informações sobre a imagem original e são operações globais, isto é, as operações
aplicadas em um pixel afetam todos os outros pixels da imagem. A maioria das transformadas usam a imagem
na perspectiva de dados para a sua execução; logo, usam técnicas de análise de dados para, então, processar
a imagem.
As transformadas são responsáveis pela definição de identificação de texturas, na identificação de formas
geométricas na imagem, como retas, polígonos, circunferências etc. Algumas técnicas de transformadas não
usam a imagem toda; realizam uma partição da imagem.
Transformações geométricas
Possibilitam uma atuação sobre a posição geométrica do pixel (x0,y0), de modo que levam o tom deste para
outra posição geométrica (xd,yd) do espaço de uma imagem, isto é, são operações em que o principal efeito é
alterar a posição espacial dos pixels que compõem a imagem.
As transformações geométricas são formadas por duas operações básicas. São elas:
Primeira operação
Realiza uma transformação espacial de
coordenadas.
Segunda operação
Realiza uma interpolação de intensidade que
atribui níveis de cinza aos pixels transformados
espacialmente.
A transformada espacial permite a correspondência entre dois pontos de duas imagens;logo, é uma função de
mapeamento e pode ser expressa como:
Perceba que (x0,y0) são coordenadas de um pixel na imagem original e (xd,yd) são as coordenadas do pixel na
imagem transformada.
De modo geral, as transformações geométricas são definidas em coordenadas homogêneas e conhecidas
como transformações afins. O sistema de coordenadas homogêneas otimiza a aplicação das operações, pois
posiciona um ponto 2D (x0,y0) em um espaço 3D (x0,y0,Z).
Quando Z = 1, a transformação entre os espaços é direta, de modo que (x0,y0,1) passa a ser a representação
de (x0,y0). Além disso, permite que as operações (veremos a seguir) fiquem uniformizadas por um cálculo
matricial e possam ser combinadas por concatenação (multiplicação) de matrizes.
As principais transformações geométricas são translação, escala e rotação. No entanto, há outras que
possuem certo grau de relevância, que são espelhamento ou reflexão e cisalhamento. Veja cada tipo a seguir.
Translação
Realiza um deslocamento em ( ; ao acrescentarmos um valor de deslocamento em e um valor 
 de deslocamento em o tom do pixel I irá para o .
Escala
Realiza um redimensionamento na imagem, uma mudança de escala (zoom in ou zoom out). Efetua o produto
entre e uma constante e um produto entre e uma constante , ambas as constantes devem ser
um número positivo diferente de zero.
Para efetuar uma ampliação, e devem ser maiores do que 1. No entanto, para efetuar uma redução, 
 e devem ser maiores do que 0 e menores do que 1. Operações como essa requerem um cuidado
especial, pois os pixels são representados por números inteiros e, em uma ampliação, por exemplo, há
possibilidade de obter os pixels vazios.
 
Então, para resolver esse tipo de questão, uma interpolação de ganhar ou bilinear será necessária. É
importante observar que, na redução, pixels não inteiros são perdidos.
Rotação
Realiza a rotação da imagem em função da origem, isto é, cada pixel se desloca em função de um ângulo 
dado.
Uma preocupação nessa operação está relacionada à área de visualização. Existe a possibilidade de a imagem
ficar fora dessa área. Além disso, ângulos diferentes dos múltiplos de 90° podem provocar aliasing.
Reflexão ou espelhamento
Também conhecida como flip, combina rotações múltiplas de 90° com a inversão de coordenadas.
Dependendo do efeito desejado, essa operação pode ser apresentada de duas maneiras:
 
Flip horizontal
Flip vertical:
Um flip horizontal corresponde a uma rotação de no sentido anti-horário, com a inversão das
coordenadas de Já um flip vertical corresponde a uma rotação de no sentido horário, com a
inversão das coordenadas de 
Cisalhamento
Realiza um deslocamento em parte dos tons em uma direção fixada, seguindo um valor de proporcionalidade.
Este deslocamento pode ser horizontal ou vertical.
 
Cisalhamento horizontal:
Cisalhamento vertical:
Interpolação de uma imagem
Como as transformações geométricas reorganizam os pixels de uma imagem em novas posições, é necessário
realizar um ajuste nos valores das intensidades atrelados a essas posições, ajustando os tons de cada pixel.
Esse reajuste é realizado por uma interpolação de intensidade; a interpolação também é utilizada para criar
outros efeitos, como morphing.
Curiosidade
O termo morphing tem como origem a palavra grega morfos, que significa forma. Em processamento de
imagens, implica um processo de transição de uma imagem em outra. 
A interpolação ou reamostragem de imagens é o processo que utiliza dados conhecidos para estimar valores
em pontos desconhecidos. Existem vários processos de interpolação, sendo os mais comuns:
Interpolação por vizinho mais próximo
Atribui a cada nova posição o valor do pixel do seu vizinho mais próximo na imagem original. Geralmente, esse
processo é usado na ampliação de uma imagem, e ocorre a replicação de pixels no caso especial quando o
zoom é um número inteiro de vezes.
 
0 valor da intensidade a ser atribuído ao pixel na imagem reamostrada terá o mesmo valor do pixel
que estiver mais próximo da posição ocupada pelo pixel na imagem original.
 
Esse processo de interpolação é simples de ser implementado e possui um processamento rápido; no entanto,
não cria valores de níveis de cinza e pode causar distorções em detalhes finos ou criar formas serrilhadas em
bordas retas da imagem. Por isso, é pouco utilizado na prática.
Interpolação bilinear
Utiliza uma média ponderada de distância dos quatro pixels vizinhos mais próximos para determinar a
intensidade de cada pixel na nova imagem.
 
Esse processo proporciona resultados melhores do que a interpolação por vizinho mais próximo e gera novos
níveis de intensidade. No entanto, exige um custo computacional um pouco maior. Uma característica comum
da imagem oriunda desse processo é a ocorrência de "borramento".
Interpolação bicúbica
É uma função B-spline cúbica definida como:
Em que:
A maior vantagem da interpolação bicúbica está relacionada às bordas, já que elas não sofrem em razão de
problemas de serrilhadas e "borramento". Além disso, a interpolação bicúbica preserva detalhes finos na
imagem, sendo, por isso, utilizada em programas de edição de imagens.
Filtros
Atuam sobre uma imagem para alterar os valores de intensidade dos pixels de alguma forma especificada.
Geralmente, são operações realizadas no domínio espacial da imagem e estão associadas a uma melhoria na
imagem. Os filtros são aplicados para remoção de ruídos, efeitos na borda da imagem e para efeito de foco
suave, também conhecido como blurring.
Filtragem no domínio espacial
As transformações no domínio de espaço dependem de uma vizinhança de influência do pixel que está sendo
considerado. Essa vizinhança de influência é chamada de máscara. A máscara possui dimensão
correlacionada à imagem, de modo que, para cada pixel (xi,yj) da imagem, existe um elemento com um valor w
correspondente na máscara. A nova imagem é obtida pelo produto do valor da intensidade de cada pixel (xi,yj)
pelo valor w correspondente na máscara.
O filtro no domínio espacial pode ser aplicado, de modo geral, considerando o conceito de correlação ou 
convolução.
A correlação é aplicada segundo a fórmula:
Já a convolução é aplicada segundo a fórmula:
Vejamos um esquema que ilustra esse filtro:
Esquema de aplicação de um filtro de correlação em que o pixel-alvo é (2,2).
Em certas situações, esse tipo de filtro, o filtro linear, pode ser aplicado em apenas algumas regiões da
imagem.
Esse tipo de filtragem pode ser resumido nesses quatro passos:
Definir o núcleo do filtro.
Deslizar o núcleo sobre a imagem de modo que o pixel central do núcleo coincida com cada pixel-alvo.
Multiplicar os pixels sob o núcleo pelos correspondentes valores no núcleo e somar os resultados.
Para cada pixel-alvo, copiar o valor resultante na mesma posição de uma nova imagem.
É importante ressaltar que esse processo muda quando os pixels-alvos estão próximos ou fazem parte da
fronteira, pois, em geral, podemos adotar soluções distintas, como replicar os valores dos pixels originais,
efetuar uma filtragem apenas nos pixels de fronteira, ou ainda replicar os valores obtidos na fronteira da
filtragem. Em determinados casos, os pixels que não puderam ser filtrados são descartados e, portanto,
excluídos da imagem, cortados.
Filtros estatísticos
Alguns filtros utilizam determinados conceitos estatísticos para realizar sua aplicação. Chamados de filtros
estatísticos, os mais comuns são o filtro do tipo: 
Média
Mediana
Moda
Mínimo
Máximo
Os filtros do tipo passa-baixa suavizam a imagem e tendem a minimizar ruídos, pois diminuem as mudanças
discrepantes que correspondem a frequências elevadas. Em contrapartida, removem alguns detalhes de
refinamento da imagem, deixando-a com aspecto borrado ou embaçado. O filtro de média ou filtro-caixa é um
filtro do tipo passa-baixa, e é determinado pela equação:
Observe que m e n são as dimensões de uma máscara qualquer.
Quando o objetivo do filtro é reduzir o efeito de ruído de pulso, do tipo salt and peper,o nfiltro da mediana é o
mais adequado, já que valores pontuais geralmente não aparecem juntos e não ocupam a posição mediana.
Observe:
• 
• 
• 
• 
• 
• 
• 
• 
• 
Exemplo de filtro de média.
Quando o objetivo do filtro é escurecer ou clarear a imagem, os filtros de mínimos e filtros de máximos são
utilizados, respectivamente. No filtro de mínimo, o valor da posição (x, y) é substituído pelo valor mínimo da
máscara. O filtro de máximo procede de modo análogo.
Para homogeneizar a imagem, o filtro de moda é aplicado, já que esse filtro seleciona para a posição (x, y) da
imagem o valor que ocorre com maior frequência na máscara.
Filtros gaussianos
São filtros de média, e sua aplicação suaviza a imagem de forma ponderada e simétrica. Uma máscara
definida a partir de um filtro gaussiano tem seus valores determinados pela função bidimensional gaussiana
discreta, com média igual a zero e desvio padrão σ. O valor Gauss (x,y) a ser colocado na posição (x, y) da
máscara é dado por:
A imagem a seguir ilustra uma máscara de Gauss 5 x 5. É importante destacar que as máscaras podem
possuir dimensões distintas.
Máscara de Gauss para um filtro passa-baixa.
Filtro passa-alta
Alguns filtros são definidos para realçar bordas ou regiões de interesse com mudanças discrepantes de
intensidade. No entanto, tendem a realçar também ruídos. O filtro passa-alta tem essa característica.
Veja agora uma máscara passa-alta 3 x 3. Note que o somatório dos elementos da máscara é igual a zero.
Exemplo de passa-alta.
Filtragem no domínio de frequência
Os filtros no domínio de frequência são efetuados em três etapas:
Etapa 1
A imagem é transformada do domínio espacial para o domínio da frequência.
Etapa 2
As operações de filtragem são realizadas na imagem.
Etapa 3
A imagem no domínio da frequência é transformada para o domínio espacial.
A mudança de base pode ser realizada pela transformada de Fourier, e pode ser aplicada em domínios
contínuos e discretos. A transformada de Fourier no modo contínuo é dada por:
A transformada de Fourier no modo discreto é dada por:
Na perspectiva matemática, o processo de convolução no domínio espacial corresponde à multiplicação de
duas expressões no domínio de frequência:
x indica a convolução entre a imagem f(x,y) com a máscara w(i,j), G(u,v)= é a transformada de Fourier de 
g(x,y), F(u,v) é a transformada de Fourier de f(x,y) e W(r,s) é a transformada de Fourier de w(i,j).
É importante ressaltar que, para efetuarmos uma filtragem no domínio de frequência, alguns passos são
necessários:
Passo 1
Dada uma imagem de tamanho , obter uma imagem com entorno de
tamanho em que preenchida com zeros no entorno.
Passo 2
Determinar a transformada discreta de Fourier da imagem obtida em .
Passo 3
Criar um filtro simétrico de tamanho com centro .
Passo 4
Fazer o produto obtido na terceira etapa.
Passo 5
Obter a imagem no domínio de espaço fazendo o inverso da transformada de Fourier .
Passo 6
Multiplicar por
Passo 7
Remover o entorno da imagem obtendo, então, , que é a imagem filtrada.
A expressão que determina o inverso da transformada de Fourier discreta é expressa por:
Logo, definir um filtro no domínio de frequência corresponde a encontrar uma máscara para ser utilizada em
conjunto com a imagem transformada e assim obter a imagem filtrada desejada. Dessa forma, como os filtros
de domínio espacial, os filtros de domínio de frequência também podem ser filtro passa-baixa ou filtro passa-
alta; no entanto, no caso dos filtros de domínio de frequência, é necessário estabelecer um F0, que é uma
frequência de corte.
Filtro passa-baixa
O filtro passa-baixa realiza um corte abrupto em certa frequência, por isso o nome de filtro ideal, e pode ser
expresso por:
Em que H(u,v) é o filtro de Butterworth, expresso por:
No filtro de Butterworth, n é a ordem do filtro, e é segundo esse valor que a função atenua a frequência a
partir da origem do filtro.
A função H(u,v) também pode ser expressa por uma função gaussiana, e nesse caso o filtro passa-baixa
passa a ser denominado filtro gaussiano:
A diferença entre o filtro gaussiano e o filtro Butterworth é que o Butterworth obtém uma atenuação mais
suave para a mesma frequência de corte.
Filtro passa-alta
Os filtros passa-alta no domínio de frequência são análogos aos filtros passa-baixa; logo, podem ser
expressos por:
Em que o filtro passa-alta Butterworth H(u,v) é expresso por:
E o filtro passa-alta gaussiano H(u,v) é expresso por:
Dessa forma, os filtros de domínio de espacial tanto quanto os de domínio de frequência visam processar a
imagem para que possamos ver e avaliar melhor uma imagem.
Operações em imagens
Acompanhe no vídeo uma visão geral das operações que podem ser realizada em imagens, como operações
pontuais, operações locais e operações globais.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Verificando o aprendizado
Questão 1
A seguinte imagem representa o trecho de uma imagem em níveis de cinza.
Considere o que estudamos sobre operações que podem ser aplicadas em imagens, leia as sentenças abaixo
e julgue-as:
I. A operação aplicada na imagem é pontual aritmética.
II. A imagem resultante sofreu um ajuste de contraste, pois é mais escura do que a imagem inicial.
III. A operação (I) visa mudar os valores quantizados da imagem, e não a sua resolução.
É correto o que se afirma apenas em
A
I.
B
II.
C
I e II.
D
I e III.
E
II e III.
A alternativa D está correta.
As operações pontuais são as mais básicas no processamento de imagens, pois mapeiam os valores
individuais dos pixels na imagem de entrada a pontos correspondentes na imagem de saída. A imagem
resultante sofreu um ajuste de contraste, pois é mais clara do que a imagem inicial.
Questão 2
Observe a seguinte imagem:
Considere o que estudamos sobre as operações aplicadas em imagens e assinale a opção correta:
A
As operações da imagem são globais, pois são realizadas na imagem como um todo.
B
As operações da imagem são locais e usam as características de lógica booleana na sua execução.
C
As operações da imagem são pontuais, em que cada pixel sofre uma alteração de cor.
D
As operações da imagem são lógicas, uma vez que tiveram de tratar os pixels que estavam fora de escala.
E
As operações da imagem são de filtragem, e o valor de um pixel da imagem de saída sofreu influência dos
pixels vizinhos.
A alternativa C está correta.
As operações pontuais são operações realizadas em pixels, conhecidas pela rapidez, simplicidade e
praticidade na execução. Uma operação pontual qualquer pode ser visualizada como um mapeamento de
pixel da imagem original para a imagem processada, em que cada pixel (xi,yi) sofre alguma alteração de
cor. Logo, operações aritméticas são operações pontuais.
3. Manipulação de imagens usando o Python
O Python e o pacote OpenCV
Conheça neste vídeo o pacote OpenCV e suas principias funções e aprenda utilizá-lo em Python.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
O Python é uma linguagem de programação de uso geral, mas que ganhou muita popularidade devido à
facilidade de implementar soluções voltadas para ciência de dados e machine learning. Isso ocorreu,
principalmente, devido às diversas funcionalidades que ela oferece nas bibliotecas, por possuir uma sintaxe
relativamente simples em relação às demais linguagens de programação, ter muita documentação disponível
na internet e, principalmente, por ter conseguido engajar muitos desenvolvedores para compartilhar as
soluções deles.
Uma das áreas em que o Python é utilizado com muito sucesso é na computação gráfica, em especial na
manipulação de imagens. A principal biblioteca com esse objetivo é o OpenCV. Essa biblioteca possui diversas
funcionalidades que facilitam o nosso trabalho de aplicar transformações nas imagens. Além disso, ela pode
ser usada para situações mais elaboradas que envolvem aplicações de visão computacional.
Neste conteúdo, vamos desenvolver um exemplo completo utilizandoa linguagem Python e algumas
bibliotecas no ambiente de desenvolvimento do Google – Google Colab. 
Vamos abordar os seguintes tópicos:
Importar pacotes.
Carregar e exibir imagens.
Redimensionar a imagem.
Aplicar a operação de rotação.
Aplicar a operação de translação.
Vamos lá conferir!
Importação de pacotes
Uma das vantagens do Google Colab é que ele nos poupa de diversas preocupações de configurações. Além
disso, já tem vários pacotes instalados por padrão. Então, para podermos iniciar a nossa aplicação,
precisamos importar os seguintes pacotes:
python
import numpy as np
import cv2
from skimage import io
from google.colab.patches import cv2_imshow 
Cada um desses pacotes tem objetivos dentro do nosso código. Acompanhe!
• 
• 
• 
• 
• 
numpy
É útil para executar a manipulação de vetores e matrizes, além de outras operações numéricas.
cv2
É a principal biblioteca para realizar operações de computação gráfica e, de um modo mais geral,
executar funções de visão computacional.
skimage
É útil para carregar a imagem a partir de um endereço que pode ser, inclusive, na Web.
google.colab.patches
É utilizada para exibir a imagem no ambiente do Google Colab.
A seguir, vamos carregar uma imagem e exibi-la.
Carregar e exibir imagens
Confira neste vídeo o pacote e o código que carrega uma imagem e exibe seu conteúdo.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Agora, vamos carregar uma imagem hospedada na web. Para isso, devemos executar o seguinte código:
python
origem = "https://upload.wikimedia.org/wikipedia/commons/8/88/
Kamchatka_Brown_Bear_near_Dvuhyurtochnoe_on_2015-07-23.png"
imagem = io.imread(origem)
img = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB) 
A partir desse momento, podemos visualizar a imagem que está carregada na variável “img” por meio da
execução deste código:
python
cv2_imshow(img) 
Sua saída é dada por:
Exibição da imagem carregada.
A figura exibe a imagem original. Os nossos próximos passos consistem em aplicar as operações de
transformação na imagem.
Redimensionar a imagem
Confira neste vídeo o código e um exemplo de redimensionamento de imagens usando OpenCV.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Antes de realizar a primeira transformação na imagem original, vamos observar as características básicas
dela. Para isso, devemos executar este código:
python
dim_original = img.shape
print(f"(Altura, Largura, Qtde de Canais): {img.shape}") 
O resultado desse código é dado por:
(Altura, Largura, Qtde de Canais): (2592, 3456, 3). Ou seja, a imagem original possui pixels de altura por pixels
de largura e 3 canais. A indicação dos canais significa que a imagem está no formato RGB.
Agora, vamos aplicar o redimensionamento da imagem, ou seja, vamos realizar a transformação de escala.
Primeiro, vamos criar a função de redimensionamento escrevendo o código a seguir.
python
def redimensionar_imagem(percentual_scala, img):
 largura = int(img.shape[1] * percentual_scala / 100)
 altura = int(img.shape[0] * percentual_scala / 100)
 dim = (largura, altura)
 img_redimensionada = cv2.resize(img, dim,
 interpolation = cv2.INTER_AREA)
 
 return img_redimensionada 
Na sequência, vamos fazer a chamada para a função de redimensionamento e exibir o resultado na tela,
executando este código:
python
red_img = redimensionar_imagem(10,img)
cv2_imshow(red_img) 
Agora, compare a imagem original e a redimensionada!
Como é possível observar, reduzimos as dimensões da imagem original para 10%. Bem legal, não é?
A nossa próxima ação será aplicar a operação de rotação. Para isso, vamos usar como entrada a imagem
redimensionada.
Aplicar a operação de rotação e translação
Confira no vídeo um exemplo do uso das funções de rotação e translação do pacote OpenCV.
Conteúdo interativo
Acesse a versão digital para assistir ao vídeo.
Rotação
Para aplicar a operação de rotação, temos de seguir estes passos:
Definir o centro de rotação da imagem.
Definir os parâmetros para a matriz de rotação por meio de uma função específica do “cv2”.
Aplicar a operação.
Agora, devemos seguir os passos apresentados por meio da execução do seguinte código:
python
altura, largura = red_img.shape[:2]
centro = (largura/2, altura/2)
angulo_em_graus = 45
fator_escala=1
matriz_rotacao = cv2.getRotationMatrix2D(center=centro, 
 angle=angulo_em_graus, 
 scale=fator_escala)
imagem_rotacionada = cv2.warpAffine(src=red_img, 
 M=matriz_rotacao,
 dsize=(largura, altura)) 
É hora de exibirmos o resultado da operação de rotação. Para isso, vamos colocar lado a lado a imagem de
entrada (redimensionada) e a imagem em que aplicamos a rotação por meio da execução do próximo código:
python
img3 = cv2.hconcat([red_img,
 imagem_rotacionada])
cv2_imshow(img3) 
Sua saída é:
• 
• 
• 
Imagem redimensionada e rotacionada.
O nosso próximo passo é aplicar a operação de translação. Vamos lá!
Translação
A operação de translação consiste em deslocar a imagem em relação ao sistema de coordenadas. Para isso,
precisamos executar os seguintes passos:
Obter os deslocamentos no sistema de coordenadas.
Definir a matriz de translação.
Executar a operação de translação.
Podemos obter isso executando o seguinte código:
python
altura, largura = red_img.shape[:2]
tx, ty = largura/8, altura/8
matriz_translacao = np.array([
 [1, 0, tx],
 [0, 1, ty]
], dtype=np.float32)
imagem_transladada = cv2.warpAffine(src=red_img, 
 M=matriz_translacao,
 dsize=(largura, altura)) 
Agora, vamos executar o próximo código para visualizar o resultado da operação:
python
img4 = cv2.hconcat([red_img,
 imagem_transladada])
cv2_imshow(img4) 
E, finalmente, obtemos a saída! Confira!
• 
• 
• 
Resultado da operação de translação.
Conseguimos alcançar nosso objetivo de aplicar a linguagem de programação Python para realizar as
operações essenciais de computação gráfica para manipulação de imagens. Agora, você precisa reproduzir o
exemplo e, depois que tudo funcionar bem, fazer modificação para adquirir segurança. Bons estudos!
Verificando o aprendizado
Questão 1
As transformações geométricas são um aspecto essencial da computação gráfica. Por meio delas, podemos
aplicar rotações, mudanças de escala e deslocamentos nos objetos digitais. A respeito das transformações
geométricas, selecione a opção correta.
A
A transformação de escala tem como característica preservar a forma original dos objetos.
B
A transformação de escala pode afetar a forma dos objetos resultantes em relação à figura geométrica
original.
C
A transformação de rotação é um exemplo de transformação rígida, uma vez que ela mantém os ângulos
internos do objeto original a cada rotação, apesar de alterações no perímetro dele.
D
A transformação de escala é um exemplo de transformação rígida, pois não altera os ângulos internos de uma
figura geométrica.
E
A translação é a transformação mais complexa de ser feita, uma vez que é necessário garantir a coerência
entre a figura geométrica original e a resultante.
A alternativa B está correta.
Quando aplicamos uma transformação de escala em um polígono, não ocorre alteração dos ângulos
internos e externos dele.
Questão 2
A computação gráfica está presente nas nossas vidas. Talvez, uma das formas mais simples de verificar como
essa afirmação é verdadeira é observar os filmes modernos: com efeitos de câmera, iluminação e uma série
de transformações dos objetos e personagens que estão na tela que nos fazem ter experiências mais realistas
ao assistir aos filmes. Um tipo de cena bem comum é a de personagens conversando dentro de um carro que
simula o movimento por meio da mudança do cenário ao fundo. Em relação a essa situação específica,

Mais conteúdos dessa disciplina