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

 Risposta accettata

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.

Più risposte (1)

Zhongkui
Zhongkui il 31 Mar 2013
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 Commenti

Yes, it would. What you call the variable does not affect what it does.
thank you.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by