Como posso afiar uma imagem usando o OpenCV ?
Existem muitas maneiras de suavizar ou embaçar, mas nenhuma que eu possa ver sobre a nitidez.
image-processing
opencv
AruniRC
fonte
fonte
Você pode tentar um kernel simples e a função filter2D , por exemplo, em Python:
A Wikipedia tem uma boa visão geral dos kernels, com mais alguns exemplos aqui - https://en.wikipedia.org/wiki/Kernel_(image_processing)
fonte
Você pode encontrar um exemplo de código sobre nitidez da imagem usando o algoritmo "máscara de nitidez" na documentação do OpenCV .
Alterar valores de
sigma
,threshold
,amount
vai dar resultados diferentes.fonte
Você pode afiar uma imagem usando uma máscara de nitidez . Você pode encontrar mais informações sobre máscara de nitidez aqui . E aqui está uma implementação Python usando OpenCV:
fonte
amount
é simplesmente a quantidade de nitidez. Por exemplo, umamount
de 2.0 fornece uma imagem mais nítida em comparação com o valor padrão de 1.0.threshold
é o limite para a máscara de baixo contraste. Em outras palavras, os pixels cuja diferença entre a entrada e as imagens desfocadas são menores quethreshold
permanecerão inalterados.Uma maneira é envolver um kernel de filtro auto-criado com a imagem.
Existe outro método para subtrair uma versão borrada da imagem da versão brilhante. Isso ajuda a aprimorar a imagem. Mas isso deve ser feito com cautela, pois estamos apenas aumentando os valores de pixel. Imagine um valor de pixel em escala de cinza 190, que se multiplicado por um peso de 2 produz se 380, mas é aparado em 255 devido ao alcance máximo permitido de pixels. Isso é perda de informações e leva à imagem desbotada.
fonte
Para maior clareza neste tópico, alguns pontos realmente devem ser feitos:
Nitidez de imagens é um problema incorreto. Em outras palavras, o desfoque é uma operação com perdas, e voltar a partir dela geralmente não é possível.
Para aprimorar as imagens únicas, é necessário adicionar restrições (suposições) sobre o tipo de imagem que você deseja e como ficou borrada. Esta é a área de estatísticas de imagem natural. As abordagens para aprimorar a nitidez mantêm essas estatísticas explícita ou implicitamente em seus algoritmos (o aprendizado profundo é o mais implicitamente codificado). A abordagem comum de ponderar alguns dos níveis de uma decomposição da pirâmide do DOG ou do Laplaciano , que é a generalização da resposta de Brian Burns, pressupõe que um desfoque gaussiano corrompeu a imagem, e como a ponderação é feita está conectada a suposições sobre o que era na imagem para começar.
Outras fontes de informação podem tornar o problema mais aguçado. Essas fontes comuns de informação são o vídeo de um objeto em movimento ou a configuração de várias visualizações. A nitidez nesse cenário geralmente é chamada de super-resolução (que é um nome muito ruim para ele, mas ficou nos círculos acadêmicos). Existem métodos de super-resolução no OpenCV desde há muito tempo ... embora eles geralmente não funcionem tão bem para problemas reais, da última vez que os verifiquei. Espero que o aprendizado profundo tenha produzido alguns resultados maravilhosos aqui também. Talvez alguém publique comentários sobre o que vale a pena por aí.
fonte
Para afiar uma imagem, podemos usar o filtro (como em muitas respostas anteriores)
Será o máximo quando o denominador for 1 e diminuirá conforme aumentado (2,3 ..)
O mais usado é quando o denominador é 3.
Abaixo está a implementação.
fonte
Tente com isto:
Você pode encontrar mais informações aqui .
fonte