MATLAB:Laplaciano de Filtro Gaussiano para Detecção de Bordas
Um filtro gaussiano é um filtro linear usado no processamento de imagens para desfocar ou suavizar imagens. Seu nome vem da função gaussiana, que é usada para definir a forma do filtro. O filtro gaussiano é comumente usado para reduzir ruído e detalhes em uma imagem, tornando-a mais adequada para processamento ou análise posterior.
O filtro Laplaciano de Gaussiano (LoG) é um filtro popular de aprimoramento de imagem e detecção de bordas usado no processamento de imagens. É uma combinação de dois filtros:o filtro Gaussiano e o filtro Laplaciano. O filtro Gaussiano é usado para suavizar a imagem e reduzir o ruído, enquanto o filtro Laplaciano é usado para detectar bordas.
O filtro Laplaciano de Gaussiano é útil para detectar bordas em diferentes escalas em uma imagem. Variando o desvio padrão do filtro Gaussiano, você pode controlar a escala na qual as bordas são detectadas. Desvios padrão menores detectam detalhes mais sutis, enquanto desvios padrão maiores detectam recursos mais amplos.
Vejamos alguns exemplos de laplaciano de filtro gaussiano.
Exemplo 1:Usando a função fspecial()
A função fspecial() é usada para criar um filtro Gaussiano e, em seguida, o Laplaciano deste Gaussiano é calculado para criar o filtro LoG. No entanto, o filtro Laplaciano espera que o filtro Gaussiano seja do tipo duplo.
O código que temos é -
09
Vamos entender o código em detalhes -
18
Aqui ele lê a imagem 'peppers.jpg' do diretório atual e a armazena na variável img.
26
Se a imagem for colorida (formato RGB), ela será convertida para tons de cinza usando a função rgb2gray. A imagem em tons de cinza é armazenada na variável img_gray. Se a imagem já estiver em tons de cinza, ela será armazenada como está.
30
O código acima cria o filtro gaussiano. Aqui, definimos o desvio padrão sigma do filtro gaussiano e calculamos o tamanho do filtro hsize com base no desvio padrão. Em seguida, criamos o filtro gaussiano usando a função fspecial com 'gaussian' como tipo de filtro.
48
Criamos o filtro Laplaciano de Gaussiano usando a função fspecial com 'log' como tipo de filtro. Este filtro representa o Laplaciano do filtro Gaussiano, que é usado para detecção de bordas.
56
Aqui, o filtro Laplaciano de Gaussiano para a imagem em escala de cinza img_gray usando a função imfilter. A opção 'conv' especifica que o filtro deve ser aplicado usando convolução, e a opção 'replicar' especifica como os limites da imagem devem ser tratados durante a filtragem.
69
Finalmente, exibimos a imagem original em tons de cinza e a imagem filtrada lado a lado usando as funções subplot, imshow e title. A imagem filtrada é convertida para o formato uint8 antes da exibição.
Quando o código é executado, a saída que obtemos é a seguinte -
Exemplo 2:Filtragem de imagens com filtros Laplaciano e LoG
Este exemplo mostra a aplicação de dois filtros diferentes, o filtro Laplaciano e o filtro Laplaciano de Gaussiano (LoG), a uma imagem de entrada 'peppers.jpg'
O código que temos é -
71
No exemplo acima -
87
Este código lê a imagem 'peppers.jpg' e a exibe usando a função imshow. A função title adiciona um título à figura da imagem.
97
Aqui, o filtro Laplaciano é criado usando a função fspecial com 'laplaciano' como tipo de filtro. A função imfilter é então usada para aplicar esse filtro à imagem de entrada x, resultando na imagem filtrada filtered_image.
105
Este código exibe a imagem filtrada obtida do filtro Laplaciano. A função title adiciona um título à figura da imagem.
112
Semelhante ao filtro Laplaciano, o filtro LoG é criado usando a função fspecial com 'log' como tipo de filtro. A função imfilter é então usada para aplicar esse filtro à imagem de entrada x, resultando na imagem filtrada filtered_image.
128
Este código exibe a imagem filtrada obtida do filtro LoG. A função title adiciona um título à figura da imagem.
Quando o código é executado, a saída que obtemos é -
Guia MATLAB:Computando Derivados Polinomiais de Forma Eficiente Transformada inversa de cosseno 2-D MATLAB:restaurar imagens de dados de frequência
MATLAB