<div dir="ltr">Matt,<div><br></div><div>It sounds like maybe we need to check "isEmpty()" on the box before computing the area, and return 0 for empty boxes.</div><div><br></div><div>By the way, I'm not a fan of having this bounding box class in KWIVER that simply wraps Eigen::AlignBox, but only exposes a subset of its functions.  I think we should just use Eigen::AlignBox and possibly some typedefs for it if we want to call it "bounding_box".  Or we could derive a subclass if we need to add some additional methods.  There is no reason to hide all the other functionality of AlignBox.  This is a separate discussion to have some time.</div><div><br></div><div>--Matt</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 10, 2019 at 10:43 PM Matt Brown via Kwiver-users <<a href="mailto:kwiver-users@public.kitware.com">kwiver-users@public.kitware.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>I was diagnosing an issue in a detection pipeline doing non-maximal suppression that led me to observe that the area of the intersection of two bounding boxes can be negative.</div><div><br></div><div>The <a href="https://github.com/Kitware/kwiver/blob/master/vital/types/bounding_box.h#L276" target="_blank">intersection</a> of two bounding boxes yields a bounding box representing the intersection. Internally, the bboxes are Eigen::AlignedBox, and the intersection uses <a href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiy1cj8hfngAhWnhOAKHRrsCtcQygQwAHoECAEQBg&url=https%3A%2F%2Feigen.tuxfamily.org%2Fdox%2FclassEigen_1_1AlignedBox.html%23title26&usg=AOvVaw1oBy2fk1j2WCPGlEGJnXOn" target="_blank">this Eigen function</a>. Still working on it, but I suspect that Eigen is returning an empty box with junk for parameters (i.e., Eigen says "The result of most methods is undefined when applied to an empty box").</div><div><br></div><div>So the question is, what should be returned <a href="https://github.com/Kitware/kwiver/blob/master/vital/types/bounding_box.h#L279" target="_blank">here</a> when there is no intersection? Should we define a special empty bbox subclass?</div><div><br></div><div>Best,</div><div>Matt<br></div></div></div></div></div>
_______________________________________________<br>
Kwiver-users mailing list<br>
<a href="mailto:Kwiver-users@public.kitware.com" target="_blank">Kwiver-users@public.kitware.com</a><br>
<a href="https://public.kitware.com/mailman/listinfo/kwiver-users" rel="noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/kwiver-users</a><br>
</blockquote></div>