Calculate the image gradient
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Matt J
le 1 Mar 2017
if Gx is zero then let Gx = 1 to avoid divide by zero problem
But theta will be wrong...
Réponse acceptée
Matt J
le 23 Sep 2013
Use atan2 instead
theta=atan2(Gy,Gx);
2 commentaires
Image Analyst
le 23 Sep 2013
Like I said, imgradient() already gives that to you as Gdir - see the help. No need to do it yourself with atan2.
Plus de réponses (1)
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!