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

 채택된 답변

Image Analyst
Image Analyst 2013년 3월 31일

0 개 추천

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.

추가 답변 (1개)

Zhongkui
Zhongkui 2013년 3월 31일

0 개 추천

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

Image Analyst
Image Analyst 2013년 3월 31일
Yes, it would. What you call the variable does not affect what it does.
Zhongkui
Zhongkui 2013년 4월 1일
thank you.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by