Skip to content

Commit c2172a2

Browse files
committed
Fix issue where two corner points are colocated
1 parent 33dc4a7 commit c2172a2

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

apriltag_quad_thresh.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -976,7 +976,12 @@ int fit_quad(
976976
double dy1 = quad->p[i1][1] - quad->p[i0][1];
977977
double dx2 = quad->p[i2][0] - quad->p[i1][0];
978978
double dy2 = quad->p[i2][1] - quad->p[i1][1];
979-
double cos_dtheta = (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2));
979+
double denominator = sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2));
980+
if (denominator == 0) {
981+
res = 0;
982+
goto finish;
983+
}
984+
double cos_dtheta = (dx1*dx2 + dy1*dy2) / denominator;
980985

981986
if ((cos_dtheta > td->qtp.cos_critical_rad || cos_dtheta < -td->qtp.cos_critical_rad) || dx1*dy2 < dy1*dx2) {
982987
res = 0;

0 commit comments

Comments
 (0)