PDI+VC · Exercício de Programação

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 Imagem p' = 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.py
# sua solução
Writing EP01_05.py
TestSuite("EP01_05.py").run()
✔️ EP01_05.cases já existe em casos/
📋 7 caso(s) carregado(s) de casos/EP01_05.cases

🔍 Testando Python: EP01_05.py
⚠️ EP01_05.py: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.