Algoritmo de Erosão e Dilatação

(1) Conceito

O algoritmo de erosão e dilatação é um algoritmo de processamento morfológico básico de nível básico, comumente usado no processamento gráfico. A
operação de erosão pode eliminar o ruído e alguns valores de limite ao mesmo tempo, resultando no encolhimento geral da imagem de destino.
A operação de dilatação pode aumentar o valor do recurso de destino, resultando na ampliação geral da imagem de destino.
A combinação dos dois pode atingir o objetivo de dividir melhor os elementos gráficos independentes.

Kernel: A alma do algoritmo de erosão e expansão também é o que requer o design mais cuidadoso. De acordo com as características da imagem de destino, diferentes kernels devem ser definidos para produzir bons resultados. Mais profissionalmente, é chamado de "elemento estrutural" . Entre eles, o núcleo
, Ou seja, o ponto central do elemento estrutural é chamado de "ponto de ancoragem". Geralmente, o valor mínimo do pixel da área afetada do elemento estrutural é usado para substituir o valor do pixel do "ponto de ancoragem".

Em termos humanos: você imagina uma pintura de parede (imagem de destino), depois de anos, há muitas marcas manchadas na parede, muitas cores desbotadas ou alguns lugares estão mofados (ruído), feios e você segura um Pincel (núcleo/ elemento estrutural), que método deve ser usado para restaurar esta pintura de parede? Trata-se de desenhar o pincel linha por linha, conforme a figura abaixo:

insira a descrição da imagem aqui
Esta operação é
como reparar "corrosão" e "expansão"? Vejamos alguns casos pequenos, do raso ao profundo

(2) Caso

Vamos primeiro relembrar as operações de interseção (símbolo é ∩) e união (símbolo é ∪) na matemática do ensino médio

1: Suponha que existam dois arrays diferentes: A={1,2,3} ; B = {1,6,9} ;

Então A ∩ B = {1} A ∪ B = {1,2,3,6,9}
todos entendem a verdade, então a seguir,

2: Assuma que o array é uma 2*2matriz simples

insira a descrição da imagem aqui
De acordo com a operação de interseção ∩, a mesma parte da matriz AB deve ser mantida, e as diferentes partes são excluídas (definidas como 0), então: De acordo com a operação de união ∪,
insira a descrição da imagem aqui
todas as partes das duas matrizes de AB são reservados, e se não excluídos, então:
insira a descrição da imagem aqui
E esta é a operação básica de erosão e expansão. Como é muito simples e fácil de entender aqui, vamos começar a entrar no link onde você não consegue entender quando deixa cair uma caneta e pegue-o. Análise de caso real ~

9*93: Assuma que uma imagem alvo de um pixel é identificada , e um conjunto 9*9de arrays bidimensionais de RGB três canais de cores primárias são obtidos, assumindo que existem apenas duas cores de preto (0,0,0) e branco (255.255.255 ), como mostra a figura a seguir:

insira a descrição da imagem aqui
Nossos olhos humanos seguem o ponto W (branco), embora existam alguns ruídos no canto superior esquerdo, canto inferior esquerdo e canto inferior direito, ainda é fácil reconhecer que é um 2. Como fazer o 2 parecer mais conspícuo?
Neste momento, nosso algoritmo de erosão e expansão começa a funcionar,
definimos um "núcleo", que você pode entender simplesmente como "pincel" e "molde".

corrosão:

A regra da corrosão é: se houver W (branco) na área de 1, marque o ponto no centro do núcleo como W, se não houver W na área de 1, não precisa lidar com isso, isso é equivalente a "&&" e a operação começa a pintar:
insira a descrição da imagem aqui
a
insira a descrição da imagem aqui
primeira vez, pode-se ver que não há ponto branco W na área em forma de cruz, portanto, o ponto central não precisa ser mudar cor.
insira a descrição da imagem aqui
Na segunda vez, se houver um ponto branco W na área em forma de cruz, a cor do ponto central deve ser alterada para branco. Aqui, uso W+ para indicar que ele aparecerá após a pintura e continuarei a escovar. Se
insira a descrição da imagem aqui
o a cor é originalmente W, não há necessidade de alterá-la toda vez. Uma linha deve ser escovada e o resultado após a escovação:
insira a descrição da imagem aqui
pode-se descobrir que a cor de fundo preta está corroída e encolhida e a área alvo branca é ampliada, mas a imagem está uma bagunça, o que não é o que queremos. Neste
momento, devemos considerar a substituição do núcleo, ou seja, a alteração Coloque o "pincel"
insira a descrição da imagem aqui
primeiro passo:
insira a descrição da imagem aqui

Passo 2:
insira a descrição da imagem aqui
Comece a recursar sem parar. Depois que a tinta terminar:
insira a descrição da imagem aqui
você pode ver que o efeito de corrosão do núcleo triangular é melhor, pelo menos melhor que o da cruz. Claro, aqui está um exemplo simples para mostrar isso . Existem dois pontos principais em resumo
: 1) Imagens diferentes usam núcleos diferentes para ter diferentes efeitos de corrosão
(2) A corrosão aumenta as características da imagem de destino e reduz a influência da cor de fundo preto por meio de tradução e julgamento

Expansão:

A dilatação é realmente muito semelhante, exceto que presta atenção se há um B preto na área da forma nuclear. Se houver, pinte o ponto de ancoragem de preto.
Supondo que o núcleo dilatado também seja um pequeno triângulo, use o mesmo núcleo para expanda a imagem corroída acima. , vamos ver o que vai acontecer:
Passo 1: Descubra que é B, não precisa modificar
insira a descrição da imagem aqui
Passo 2: Se você encontrar B, mude o ponto de ancoragem do W+ para preto.
insira a descrição da imagem aqui
Continue a escovar e depois obtenha o resultado expandido:
insira a descrição da imagem aqui
Verificou-se que o fat 2 original ficou muito fino e até mesmo a linha horizontal abaixo foi considerada como ruído desaparecendo. É claro que, em situações reais, os valores de pixel da imagem de destino não podem apenas ter lamentáveis ​​linhas de N colunas, então definitivamente não é O que é completamente eliminado é no máximo reduzido, e alguns ruídos menores serão eliminados.
Acontece que a área do fundo preto é ampliada.
Esta é a lógica de implementação subjacente de corrosão e expansão. Claro, se eu usar núcleos diferentes, os resultados da expansão serão diferentes. Ainda preciso tentar mais alguns e decidir de acordo com a situação real.

(4) Operações de abertura e fechamento

Seja a imagem alvo X, a erosão E e a dilatação D

operação aberta

Como no exemplo acima, corroer primeiro e depois expandir, que é chamado de: operação aberta (OPEN(X) = D(E(X))
por meio da operação aberta, pode remover pequenos pontos de ruído isolados, rebarbas nos gráficos e pequenas pontes entre duas áreas, enquanto o gráfico geral permanece praticamente inalterado
insira a descrição da imagem aqui

Fechar operação

Expandir primeiro, depois corroer, que é chamado de: operação fechada (CLOSE(X) = E(D(X)))
Por meio da operação fechada, os buracos nos gráficos principais podem ser reparados, pequenas rachaduras podem ser preenchidas e os recursos de destino pode ser mais completo
insira a descrição da imagem aqui
(acima As duas fotos são da busca casual do Baidu, tem muitas na internet, então vou pegar emprestadas)

(5) Perguntas:

Como o núcleo deve ser projetado?
O exemplo é apenas uma breve explicação. Na verdade, a expansão e a erosão na biblioteca de CV empacotada não precisam ser especialmente projetadas por nós. Ela pintará o ponto de ancoragem por padrão quando o "pincel" e a imagem de destino forem convoluídos e "pintado". no valor de cor mais escuro/mais claro, e a forma do núcleo é geralmente quadrada ou em forma de disco

Por que não é recomendado apagar o ruído na borda?
O ruído na borda não pode ser apagado, porque pode ser ruído no bloco atual, mas se for uma imagem pequena cortada de uma imagem grande, esses pontos na borda provavelmente serão os principais valores de recursos de outras imagens , que é a informação chave para o splicing

O núcleo deve ser 3*3? O núcleo tem que ser um ponto?
Não necessariamente, o núcleo também pode ser 4*4,5*5,9*9, o núcleo também pode ter várias formas, não necessariamente um ponto

(6) Finalmente

Anexe uma foto do código do CV, existem muitos casos na Internet, então não vou mostrar aqui
insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/whiteBearClimb/article/details/123711281
Recomendado
Clasificación