Normalização com percentil

Definição da função a ser feita e testada

Escrever um programa que faça a normalização dos pixels da imagem f para a faixa [0, 255], porém com um parâmetro de percentil indicando qual valor mínimo e máximo de f que será normalizado dentro da faixa. O percentil é um valor de percentagem variando de 0 a 100. Um percentil de valor p é o nível de cinza v em que existem p porcento de pixels de valor menor que v.

A função portanto deve ter o seguinte comportamento, dado imagem f e percentil p:

  • pixels com nível de cinza abaixo do valor de pixel dado pelo percentil p são atribuídos o valor 0;
  • pixels com nível de cinza acima do valor de pixel dado pelo percentil 100 - p são atribuídos valor 255;
  • demais pixels são normalizados linearmente entre os valores 0 e 255.

A função de normalização sem percentil está implementada em

A proposta aqui é fazer outra função de normalização com a opção do parâmetro adicional p percentil. A vantagem desta função é que se consegue melhorar o contraste da imagem passando um valor de p, o que não é possível de se fazer com a função normalize.

Referências:

Implementação das funções

Implemente aqui as suas funções:


In [1]:
def nperc_clip(f, p):
    # coloque a sua solução editando esta parte
    import numpy as np
    return f

Testando as funções

Caso numérico

Com imagens