EP01_05 — 🔄 Negativo de uma Imagem em Tons de Cinza
1.17.5 EP01_05 🔄 Negativo de uma Imagem em Tons de Cinza
Nesta atividade, deve-se escrever um programa que calcule o negativo de uma imagem digital.
Leia dois inteiros L e C, representando o número de linhas e colunas.
Leia os valores inteiros que compõem a matriz da imagem.
Para cada pixel, aplique a transformação de inversão:
\[pixel_{negativo} = 255 - pixel_{original}\]
Imprima a matriz resultante, mantendo o formato original (L linhas e C colunas).
📌 Importante:
Os valores de cada linha na saída devem ser separados por um espaço em branco.
A saída deve conter apenas os números da matriz resultante.
Ver um simulador interativo para esta questão na Figura 1.15 (comparação em tempo real entre a matriz original e seu negativo).
1.17.5.1 🧠 Por que isso importa? – Inversão de Intensidade
O negativo é uma transformação linear básica que inverte a escala de brilho. É uma ferramenta essencial para o olho humano identificar detalhes claros que estão “escondidos” em fundos mais escuros, sendo amplamente utilizada em:
Aplicação
Utilidade
Imagens Médicas
Melhora a visualização de anomalias em tecidos densos (ex: Raios-X).
Astronomia
Destacar galáxias e nebulosas tênues contra o vazio do espaço.
Artes Digitais
Efeitos estéticos e preparação de máscaras de seleção.
1.17.5.2 📋 Tarefa (especificação para VPL)
Entrada:
A primeira linha contém o inteiro L.
A segunda linha contém o inteiro C.
As linhas seguintes contêm os elementos da matriz.
Saída:
A matriz invertida com L linhas e C colunas.
1.17.5.3 📌 Exemplos
Entrada
Saída
Observação
2
3
0 128 255
50 100 255
255 127 0
205 155 55
Onde era 0 (preto) vira 255 (branco)
🌓 Simulador EP01_05: Transformação de Negativo de Imagemp' = 255 - p
Clique nos pixels da matriz Original (p) para alterar seus níveis de cinza (passo de +51) e observe o efeito da inversão complementar na matriz Negativo (255 - p).
ORIGINAL (p)
NEGATIVO (255 - p)
💡A transformação de negativo mapeia tons escuros (próximos de 0) para tons claros (próximos de 255) e vice-versa, sendo útil para destacar detalhes escuros em fundos claros.
Figura 1.15: Simulador EP01_05: Transformação de Negativo de Imagem (Inversão de Intensidade)
%%writefile EP01_05.cpp// sua solução
Overwriting EP01_05.cpp
TestSuite("EP01_05.cpp").run()
✔️ EP01_05.cases já existe em casos/
📋 7 caso(s) carregado(s) de casos/EP01_05.cases
🔍 Testando C++: EP01_05.cpp
⚠️ EP01_05.cpp: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.