Images.imedge function implementation calculates gradients as grad_y, grad_x = imgradients(img, kernelfun, border)
But right in the next line it passes grad_y, grad_x
into the magnitude
and orientation
methods which have parameter list specifed as grad_x, grad_y
mag = magnitude(grad_y, grad_x)
orient = orientation(grad_y, grad_x)
While it’s not a problem for magnitude
method which calcs Base.hypot
but for orientation
I believe it has direct impact because inside it there is a atan(grad_x, grad_y)
is calculated
It this a bug or not?
More general question.
In orientation
method specification it’s said
Calculate the orientation angle of the strongest edge from gradient images
phase
method
Calculate the rotation angle of the gradient
What does exactly this mean? In geometry terms
As I understand we can calculate angle between ray ( unit vector from coordinate system center to the given point ) and positive ( negative? ) direction of either axis Y or X. Which axis is taken? Which has more absolute value? It’s not clear from code implementation