Calculate the image gradient
5 ビュー (過去 30 日間)
古いコメントを表示
I use the function imgradientxy to get the Gx and Gy firstly. Then obtain the direction of the gradient.
some codes like:
% code
b = zeros(100);
b(1:4:end,:) = 1;
[Gx, Gy] = imgradientxy(b);
theta = atan(Gy./Gx);
The image only has some horizontal lines. So The Gx is all zeros and the theta have a lot NAN. What should I do to get the gradient for this image and for other?
2 件のコメント
Matt J
2017 年 3 月 1 日
if Gx is zero then let Gx = 1 to avoid divide by zero problem
But theta will be wrong...
採用された回答
Matt J
2013 年 9 月 23 日
Use atan2 instead
theta=atan2(Gy,Gx);
2 件のコメント
Image Analyst
2013 年 9 月 23 日
Like I said, imgradient() already gives that to you as Gdir - see the help. No need to do it yourself with atan2.
その他の回答 (1 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!