simple distance issue

Nov 13, 2012 at 3:17pm

simple distance issue

couldn’t seem to find an answer to my problem. just calculating the distance between two points in cv.jit.track: any idea what in my expression may cause a “nan” output? am I bracketing incorrectly?

expr sqrt((($i1 – $i2) ^ 2) + (($i3 – $i4) ^ 2))

#65198
Nov 13, 2012 at 3:37pm

expr sqrt (((a-b)^2)+((c-d)^2)) i.e. the square root of the sum of the quantity of a – b squared plus the quantity c – d squared… right? looks right to me

#234965
Nov 13, 2012 at 3:59pm

^ does a Bitwise XOR, try:

expr sqrt((($i1 - $i2) * ($i1 - $i2)) + (($i3 - $i4) * ($i3 - $i4)))

#234966
Nov 13, 2012 at 4:02pm

Hi,

well, first you’re taking the difference of $i1 and $i2 and then you apply the ‘bitwise exclusive or’ operator with the result and 2. This is certainly NOT what you wish to achieve…

The ‘power’ function in expr is called ‘pow’, so you should do expr sqrt ( pow ( $i1 - $i2 , 2 ) + pow ( $i3 - $i4 , 2 ) ). On the other hand, the power function is quite expensive computationally compared to a simple multiplication, so for squaring a value, you should better use the form

expr sqrt ( ($i1 - $i2)*($i1 - $i2) + ($i3 - $i4)*($i3 - $i4) )

HTH,
Ádám

#234967
Nov 13, 2012 at 6:27pm

ahh, thanks for identifying the snag

#234968
Nov 13, 2012 at 6:40pm

Apropos of nothing, I’ll point out that polar coordinates are not the solution to the problem.

– Pasted Max Patch, click to expand. –
#234969
Nov 13, 2012 at 10:07pm

where is c*c when you need it.

#234970
Nov 14, 2012 at 6:00pm

sorry if I misinformed. “^” is a symbol for “the ‘bitwise exclusive or’ operator with the result and 2″?? Thought it indicated an exponent. My apologies.

#234971

You must be logged in to reply to this topic.