Uma implementação do matlab está nesta resposta: https://dsp.stackexchange.com/a/14201/5737
1) A fórmula da Wikipedia é um pouco geral demais.
2) Se você conhece o básico da transformação com Fourier, empiricamente sabe que: A imagem é vista como sendo formada pela sobreposição de uma série de ondas sinusoidais de várias frequências orientadas em todos os tipos de direções. Cada "pixel" na transformação nos diz a "intensidade" de uma onda. A posição do "pixel" nos diz a frequência e a orientação da onda. Na prática, quer-se selecionar apenas certas ondas, tendo uma frequência específica e uma orientação específica.
Então, já está: A transformação Gabor é um dos muitos filtros de passagem de banda que permite "cortar" a transformação Fourier e isolar apenas informações específicas. Outra informação importante é que cada "pixel" de Fourier é um valor complexo (parte real e imaginária)
3) Parâmetros: Dois parâmetros já são mostrados:
3.a) A frequência de sintonia f0ou período de ajuste P0ou λestabelecer a que tipo de onda sinusal o filtro responderá melhor. (f=1/P0=1/λ ou f=π/λ dependendo da implementação específica) Basicamente, um menor P0significa uma onda sinusal mais densa. Um maiorP0 significa ondas maiores. P0 está em pixels (3, 5, 30, etc. pixels) Não ultrapasse 3 pixels ou mais W/2 ou você obtém efeitos desagradáveis. Wé a largura da imagem, se a imagem for quadrada. Você especifica isso usando o parâmetro P0 no código matlab.
3.b) Ângulo central. Essas ondas podem ter qualquer direção. Você deseja selecionar apenas ondas em um ângulo específico. Então, o segundo parâmetro é o ângulo de sintonia,θ0 ou θna sua fórmula. Geralmente, em radianos. Oriente no código matlab.
Não se pode isolar apenas uma certa frequência ou uma certa orientação. (Procure o princípio da incerteza nos livros didáticos. Sim, é semelhante ao da física). Mas é possível sintonizar quanto das frequências próximas vazará. Os próximos dois parâmetros especificam que:
3.c) ΔF, largura de banda de frequência expressa em oitavas. Valores úteis, 1,5, 2, 3. Valores maiores significam capturar uma faixa mais ampla de frequências. Há um preço para um passe de banda mais apertado, uma localização espacial mais pobre. Por que, novamente, livro didático. FBW no código matlab.
3.d) Δθa largura de banda do ângulo. Expresso em radianos.π/3 ou π/2funciona muito bem. ABW no código matlab.
A relação entre Δf, Δθ do código matlab e σ,γ da Wikipedia tem uma fórmula, mas não é essencial para entender Gabor. ψ novamente não é importante para o entendimento básico.
Então você tem: Xda Wikipedia é uma matriz 2D de números que contém uma máscara de convolução. Você pega a imagem original, filtra-a com a máscara de convolução e obtém outra imagem. Esta nova imagem é a "resposta Gabor" para a imagem original.
O código do matlab executa esses dois passos juntos. Constrói o filtro Gabor com os parâmetros especificados e executa a convolução. Os resultados ReConv, ImConv são as respostas. Cada "pixel" de resposta possui uma parte real e uma imaginária. Se você deseja usar esse código, geralmente deve calcular a energia para a resposta:E=a2+b2−−−−−−√ Onde a é a parte real da resposta (ReConv) e b é a parte imaginária (ImConv), para cada pixel.
Aí está: 1) Construa um filtro Gabor especificando P0,θ0,Δf,Δθ
2) Convolute sua imagem com o filtro. Você receberá dois valores por cada pixel. 3) Calcule a energiaE e obtenha a intensidade da resposta para cada pixel na imagem original
Outra intuição: suponha que você queira selecionar as arestas que se estendem em uma orientação perpendicular a π/6e uma certa largura de 20 pixels. Você pode criar um filtro Gabor comP0≈20,θ0=π/6,Δf=2,Δθ=pi/2. CUIDADO para que não exista uma relação igual entre a dimensão da sua aresta e aP0parâmetro. Você deve tentar vários valores e ver o que funciona melhor. Os outros parâmetros (Δf,Δθ) toque neles quando tiver alguma experiência em ajustar os dois primeiros.
Espero que ajude!
Cristi
Atualizar
Aqui está um site que permite que você brinque um pouco com os parâmetros do Gabor e observe os resultados: http://www.cogsci.nl/pages/gabor-generator.php
Após uma rápida olhada, ambas as larguras de banda de frequência e ângulo são unidas como "Desvio padrão em pixels ... para o envelope de Gauss". O restante dos parâmetros é facilmente identificado. No entanto, observe que existem diferenças numéricas! Por exemplo. a fase pode ser expressa no intervalo 0-1 ou 0-π intervalo.