How to apply directional gaussian filters to an image?
Mostrar comentarios más antiguos
I have an image I(X,Y) and I wish to filter it using the difference of Gaussian filter for different directions. Since I do not know the direction of particular lines in the image, I want to implement a 12 directional filters each of them tuned to a specific orientation θi ∈ [−π/2, π/2], i = 1, . . . , 12. The output of the directional filter is then compared with the output of an omnidirectional filter. We will use Gaussian filters for this purpose. Considering both contributions, the filter impulse response is given by
hθ(x, y) = G1(x, y) − G2(x, y)
This is the difference of gaussian filter which I wish to convolve with my image.
Ii(x, y) = hθi(x, y) ∗ I(x, y) for i=1 to 12
This is the code I have executed for difference of Gaussian filter.
My filter parameters are as given below:
N = 12 filters,
σx1 = 40, σy1 = 40, σx2 = 3, σy2 = 0.5
and the window size is 11x11
clc;
clear all;
close all;
hsize=[11, 11];
a=(imread('os.jpg'));
a1=rgb2gray(a);
figure();
imshow(a1);
h1=imgaussfilt(a1, [40, 40], 'filterSize', [11, 11]);
h2=imgaussfilt(a1, [3, 0.5], 'filterSize', [11,11]);
imshow(h2)
DoG=h1-h2;
imshow(DoG);
1 comentario
Matteo Fadda
el 15 de Abr. de 2018
how can I extend this example for all 12 directions? thank you
Respuesta aceptada
Más respuestas (2)
Braiki Marwa
el 17 de Mayo de 2017
Hello,
I want to apply the gaussian filter .I write this code but it's not working
for i=1:nb1_iteration
Iblur1= imgaussfilt(im,0.5);
end
3 comentarios
Image Analyst
el 17 de Mayo de 2017
Start a new question and say what's not working. What you're doing is to create the same blurry image nb1_iteration times. Iblur1 is the same every single time. That's what you did - is that what you want?
Braiki Marwa
el 18 de Mayo de 2017
Editada: Image Analyst
el 18 de Mayo de 2017
I want to apply the process of filtering for different iterations and see the effect.
Image Analyst
el 18 de Mayo de 2017
OK, good luck.
Gustavo Liñan
el 21 de Nov. de 2017
Editada: Gustavo Liñan
el 21 de Nov. de 2017
0 votos
I use this type of rotated filters many times when I create algorithms using the histogram of orientations. What I do, in these cases, is, First, I create the non-simetric filter (e.g. gaussian with \sigmaX != \sigmaY, or LoG...). Then I define the rotation vector (typically, Phi=0:pi/Step:pi) and for each rotation angle I create the rotated filter basically, I consider the filter an image, apply image rotation with the bicubic interpolation and 'loose' option. Finally, I take the filter out of its rotated image by cropping it to the correct size.
Categorías
Más información sobre Image Arithmetic en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!