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

 Réponse acceptée

Image Analyst
Image Analyst le 31 Mar 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.

Plus de réponses (1)

Zhongkui
Zhongkui le 31 Mar 2013

0 votes

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 commentaires

Image Analyst
Image Analyst le 31 Mar 2013
Yes, it would. What you call the variable does not affect what it does.
Zhongkui
Zhongkui le 1 Avr 2013
thank you.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by