I need help on gradient mask. Thanks a lot.

%I have following script trying to produce the Gaussian mask Hx and Hy and get the gradient x (Gx) and gradient Y(GY) of image by convolving the mask to the image. Gx = conv2(Image,Hx), Gy = conv2(Image,Hy). but the result looks not correct. Gx looks like gradient y and Gy looks like gradient y. Is anybody familiar with gradient mask and give me any suggestion? thank you very much.
Hx = zeros(13);
Hy = zeros(13);
sigmasqrd = 1/9;
S = (-6:6);
for i = 1:13
for j = 1:13
xpo = 2.0*exp(-(S(i).^2+S(j).^2)*sigmasqrd)*sigmasqrd;
Hx(i,j)= S(i)*xpo;
Hy(i,j)= S(j)*xpo;
end
end

 Respuesta aceptada

Image Analyst
Image Analyst el 31 de Mzo. de 2013
Add this code to the end of your code:
Hx
Hy
subplot(1,2,1);
imshow(Hx, []);
subplot(1,2,2);
imshow(Hy, []);
The code does produce kernels that should provide a gradient-like operation. Does that answer your question? There is also imgradient() in the Image Processing Toolbox if you want to use one of the standard gradient methods.

Más respuestas (1)

Zhongkui
Zhongkui el 31 de Mzo. de 2013

0 votos

thank you for your answer. You answered part of my question. my second question is if I reversed the X and Y gradient, i.e. Hx produce the Y gradient while Hy makes X gradient. Thank you again for your answer.
Zhongkui

2 comentarios

Image Analyst
Image Analyst el 31 de Mzo. de 2013
Yes, it would. What you call the variable does not affect what it does.
Zhongkui
Zhongkui el 1 de Abr. de 2013
thank you.

Iniciar sesión para comentar.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by