Implemente, utilizando apenas Python, NumPy e OpenCV, um sistema de aprimoramento automático de imagens. O sistema deve carregar imagens com problemas de exposição (muito escuras ou "estouradas"), realizar uma análise do histograma e aplicar correções matemáticas nos pixels para balancear o brilho e o contraste, tentando recuperar a qualidade visual da foto sem intervenção manual.
Materiais para você usar como base para o desenvolvimento
Estrutura, regras e requisitos do projeto
Utilizar operações matriciais do NumPy e funções de processamento do OpenCV para criar um script que "salva" fotos mal tiradas.
Objetivo Desenvolver um algoritmo que detecte automaticamente se uma imagem precisa de clareamento (correção de subexposição) ou escurecimento (correção de superexposição) e aplique a técnica adequada (como Correção Gama) para normalizar a imagem.
Para validar a robustez do seu código, utilizaremos duas imagens com problemas opostos de iluminação.
Disponibilidade: Utilize quaisquer duas imagens que representem os cenários abaixo.
Cenários de Teste Obrigatórios
| Imagem (Cenário) | Problema Visual | Objetivo da Correção Automática |
|---|---|---|
| Imagem A (Superexposta) | Imagem "lavada", muito branca, perda de detalhes nas luzes. | Reduzir o brilho excessivo e aumentar o contraste local. |
| Imagem B (Subexposta) | Imagem muito escura, difícil de ver o conteúdo, sombras densas. | Clarear a imagem revelando detalhes ocultos nas sombras. |
opencv-python e numpy.cv2.cvtColor).cv2.calcHist) ou a média de intensidade dos pixels (numpy.mean).ndarray). Para alterar o brilho, você pode somar valores à matriz, mas cuidado com o overflow (valores passando de 255). Utilize cv2.add ou np.clip para garantir que os valores fiquem entre 0 e 255.np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8") onde invGamma é 1 / gamma .cv2 e numpy as np.ajustar_gama(imagem, gamma=1.0) que usa uma LookUp Table (LUT).
cv2.LUT(img, table)if escura: chamar ajustar_gama com valor > 1.0 (ex: 5) ou aplicar.if clara: chamar ajustar_gama com valor < 1.0 (ex: 0.01).teste_escuridao.png e teste_exposicao_alta.png estejam no diretório.Após concluir o desafio, envie a URL do seu repositório GitHub. Poste no LinkedIn o resultado do seu "ajuste de fotos" automático!
Feito com 💜 por Rocketseat 👋
Utilizar operações matriciais do NumPy e funções de processamento do OpenCV para criar um script que "salva" fotos mal tiradas.
Objetivo Desenvolver um algoritmo que detecte automaticamente se uma imagem precisa de clareamento (correção de subexposição) ou escurecimento (correção de superexposição) e aplique a técnica adequada (como Correção Gama) para normalizar a imagem.
Para validar a robustez do seu código, utilizaremos duas imagens com problemas opostos de iluminação.
Disponibilidade: Utilize quaisquer duas imagens que representem os cenários abaixo.
Cenários de Teste Obrigatórios
| Imagem (Cenário) | Problema Visual | Objetivo da Correção Automática |
|---|---|---|
| Imagem A (Superexposta) | Imagem "lavada", muito branca, perda de detalhes nas luzes. | Reduzir o brilho excessivo e aumentar o contraste local. |
| Imagem B (Subexposta) | Imagem muito escura, difícil de ver o conteúdo, sombras densas. | Clarear a imagem revelando detalhes ocultos nas sombras. |
opencv-python e numpy.cv2.cvtColor).cv2.calcHist) ou a média de intensidade dos pixels (numpy.mean).ndarray). Para alterar o brilho, você pode somar valores à matriz, mas cuidado com o overflow (valores passando de 255). Utilize cv2.add ou np.clip para garantir que os valores fiquem entre 0 e 255.np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8") onde invGamma é 1 / gamma .cv2 e numpy as np.ajustar_gama(imagem, gamma=1.0) que usa uma LookUp Table (LUT).
cv2.LUT(img, table)if escura: chamar ajustar_gama com valor > 1.0 (ex: 5) ou aplicar.if clara: chamar ajustar_gama com valor < 1.0 (ex: 0.01).teste_escuridao.png e teste_exposicao_alta.png estejam no diretório.Após concluir o desafio, envie a URL do seu repositório GitHub. Poste no LinkedIn o resultado do seu "ajuste de fotos" automático!
Feito com 💜 por Rocketseat 👋
Use este checklist para ajudar a organizar a sua entrega
Confira os resultados esperados do projeto

Envie o projeto para ver a resolução
Ao enviar seu projeto, você poderá conferir os resultados esperados