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

EP01_04 — 🖼️ Leitura e Informações de uma Imagem em Matriz

1.17.4 EP01_04 🖼️ Leitura e Informações de uma Imagem em Matriz

Nesta atividade, você deve escrever um programa que processe uma imagem digital representada como uma matriz de pixels em tons de cinza.

  • Leia dois inteiros L e C, representando o número de linhas e colunas.
  • Leia os L * C valores inteiros que compõem a matriz da imagem (cada valor entre 0 e 255).
  • Calcule e imprima as seguintes informações:
  1. O número de linhas.
  2. O número de colunas.
  3. O valor do maior pixel (Máximo).
  4. O valor do menor pixel (Mínimo).
  5. A Média aritmética de todos os pixels.

📌 Importante:

  • A saída deve seguir exatamente o formato rotulado (ex: Linhas: X).
  • O valor da média deve ser formatado com duas casas decimais.
  • Ver um simulador interativo para esta questão na Figura 1.14 (grade interativa para visualização de intensidades e cálculos em tempo real).

1.17.4.1 🧠 Por que isso importa? – A Imagem como Dados

Toda imagem digital é, no fundo, uma estrutura de dados. Em tons de cinza de 8 bits, cada pixel é um valor escalar. Extrair estatísticas básicas é o primeiro passo para:

Operação Utilidade Prática
Máximo/Mínimo Identificar se a imagem está “lavada” (baixo contraste) ou saturada.
Média Calcular o brilho global da cena para ajustes de exposição.
Normalização Redimensionar os valores para intervalos como \([0, 1]\) em redes neurais.

1.17.4.2 📋 Tarefa (especificação para VPL)

Entrada:

A primeira linha contém o inteiro L (linhas).

A segunda linha contém o inteiro C (colunas).

As linhas seguintes contêm os elementos da matriz.

Saída:

Cinco linhas formatadas conforme o exemplo:

Linhas: L

Colunas: C

Max: V

Min: V

Media: V.VV

1.17.4.3 📌 Exemplos

Entrada Saída Observação
2
3
0 128 255
50 100 200
Linhas: 2
Colunas: 3
Max: 255
Min: 0
Media: 122.17
Imagem pequena de alto contraste
📊 Simulador EP01_04: Estatísticas Locais de Pixels Matriz 5x5

Clique sobre qualquer pixel da matriz para incrementar seu nível de cinza (passo de +51) ou utilize as ações pré-definidas abaixo para observar os limites e a média global.

Média Global (µ)
0.00
Valor Máx
0
Valor Mín
0
Figura 1.14: Simulador EP01_04: Estatísticas de Pixels em Matriz Discreta 5x5
%%writefile EP01_04.py
# sua solução
Writing EP01_04.py
TestSuite("EP01_04.py").run()
✔️ EP01_04.cases já existe em casos/
📋 5 caso(s) carregado(s) de casos/EP01_04.cases

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