Como remover o ruído sem destruir a borda principal?


8

Estou trabalhando em um projeto. Quero segmentar um logotipo de um carro e o tamanho da imagem é 3648 * 2432. O logotipo é selecionado pelo retângulo vermelho.

insira a descrição da imagem aqui

Eu extraí essa área e viro para o nível de cinza. O tamanho da área é 249 * 173. Então, eu uso o histograma equalizado para aprimorar a borda. Finalmente, uso o sagacidade adaptável para encontrar vantagens.

insira a descrição da imagem aqui insira a descrição da imagem aqui

No entanto, o resultado não é perfeito. Então, usei o filtro mediano para suavizar a imagem esquerda. O resultado é o seguinte.

insira a descrição da imagem aqui

Eu removo as peças pequenas.

insira a descrição da imagem aqui

O resultado foi aprimorado, mas também não é bom. Além disso, tentei filtro bilateral, filtro médio e filtro gaussiano, mas o resultado também não é bom. Eu sei que depois de passar o histograma equalizar, o ruído pode ser aprimorado. Mas, em alguns casos, com baixo contraste, preciso adaptar esta etapa para melhorar minha imagem. Alguém pode me fornecer algum comentário diferente? Muito obrigado.

Respostas:


7

Use filtro bilateral ou difusão anisotrópica primeiro.

O efeito da difusão anisotrópica é o seguinte:

insira a descrição da imagem aqui. O código MATLAB pode ser encontrado aqui .

Aqui está o efeito na sua imagem: insira a descrição da imagem aqui

Finalmente, meios não locais também são uma boa maneira de se livrar do barulho. Você também pode querer dar uma olhada nisso. Eu aviso, porém, é lento.


Experimente: github.com/RoyiAvital/… Muito mais avançado que a difusão anisotrópica clássica.
Royi 18/01/2015

11
@birdbird: a difusão anisotrópica parece interessante, se você puder fornecer um conjunto de exemplos de imagens originais e processadas, juntamente com a geração de código matlab, isso seria apreciado.
precisa saber é o seguinte

verifique novamente por favor.
Tolga Birdal

Obrigado pelos exemplos e pelo código. Forneci meu próprio processamento muito simples no link: [IMG] i62.tinypic.com/2w3t6gz.jpg[/IMG] . Seu efeito no Lena é muito melhor, mas não é um detector de borda. Apenas um apontador de imagem redutor de ruído.
precisa saber é o seguinte

Vou ler o artigo sobre difusão anisotrópica. Além disso, @Drazick, o código no github tem erro quando a imagem é maior que cerca de 328 * 228, mas o resultado da imagem pequena é bom. Muito obrigado pela sua resposta entusiasmada.
Kuo

3

Eu não sugeriria uma equalização como o primeiro passo. Vá com redução de ruído.


Então, você acha que eu preciso reduzir o ruído primeiro? Em seguida, implementar a equalização do histograma?
Kuo

sim reduza o ruído primeiro. Uma equalização cega do histograma pode ou não melhorar suas arestas. Então é melhor você melhorar suas arestas de forma adaptável.
precisa saber é o seguinte

Quando a nitidez das bordas reduz o ruído?
precisa saber é o seguinte

Existe algum método que eu possa usar para melhorar minha vantagem? Tentei a filtragem de alto impulso, mas em condições de baixo contraste, a filtragem de alto impulso não pode ter um bom desempenho.
Kuo

O ruído @tbirdal é reduzido antes que a borda seja afiada; na verdade, meu algoritmo é um apontador de imagem adaptável à borda não linear, com variação de espaço. Seu principal objetivo é produzir imagens nítidas de alta qualidade visual, preservando a textura e ainda não amplificando o ruído. No entanto, como ele tenta proteger as texturas contra o desgaste da redução de ruído, pode não produzir o resultado desejado para todos os tipos de ruído.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.