Ajuste o limiar de separação (T) e os deslocamentos de brilho (δ₁ e δ₂) para aplicar transformações de intensidade diferenciadas nas regiões escuras e claras da imagem.
1.17.8 EP01_08 🎨 Remapeamento por Faixa de Intensidade
Nesta atividade, você deve escrever um programa que aplique transformações lineares distintas a diferentes regiões de intensidade da imagem.
- Leia dois inteiros L e C, representando as dimensões da matriz.
- Leia os inteiros T (limiar), δ₁ (delta 1) e δ₂ (delta 2).
- Leia os valores inteiros da matriz.
- Para cada pixel \(p\), aplique a regra de remapeamento condicional:
\[\text{resultado} = \begin{cases} p + \delta_1 & \text{se } p < T \\ p + \delta_2 & \text{se } p \ge T \end{cases}\]
- Imprima a matriz resultante com os novos valores de intensidade.
📌 Importante:
- δ₁ é o offset aplicado aos pixels escuros (abaixo do limiar).
- δ₂ é o offset aplicado aos pixels claros (maior ou igual ao limiar).
- Os casos de teste garantem que o resultado estará sempre no intervalo válido de 0 a 255, portanto, não é necessário tratar saturação ou arredondamentos.
- A saída deve manter a estrutura de matriz (L linhas e C colunas).
1.17.8.1 🧠 Transformação Condicional de Pixels
Em Processamento Digital de Imagens (PDI), frequentemente precisamos tratar regiões de forma independente. Esta técnica permite, por exemplo, clarear apenas as sombras de uma fotografia (aumentando os pixels escuros) sem estourar o brilho das áreas já claras, ou vice-versa.
| Faixa de Intensidade | Condição | Operação |
|---|---|---|
| Pixels Escuros | \(p < T\) | \(p + \delta_1\) |
| Pixels Claros | \(p \ge T\) | \(p + \delta_2\) |
1.17.8.2 📋 Tarefa (especificação para VPL)
Entrada:
A primeira linha contém os inteiros L e C.
A segunda linha contém os inteiros T, δ₁ e δ₂.
As linhas seguintes contêm os elementos da matriz.
Saída:
A matriz transformada com L linhas e C colunas, com valores separados por espaço.
1.17.8.3 📌 Exemplos
| Entrada | Saída | Observação |
|---|---|---|
2 4128 60 -400 100 150 25580 128 200 30 |
60 160 110 215140 88 160 90 |
Pixels < 128 somam 60. Pixels ≥ 128 subtraem 40. |
%%writefile EP01_08.py
# sua soluçãoWriting EP01_08.py
TestSuite("EP01_08.py").run()✔️ EP01_08.cases já existe em casos/
📋 8 caso(s) carregado(s) de casos/EP01_08.cases
🔍 Testando Python: EP01_08.py
⚠️ EP01_08.py: Arquivo sem conteúdo (menos de 3 linhas). Testes ignorados.