opencv检测相交点,如何轻松地检测2个ROIs是否相交在OpenCv?

I am trying to detect whether 2 Regions of Interest (CvRects) are intersecting one another in OpenCV. I can obviously manually type several (or rather a lot of) conditions to be checked but that wouldn't really be a good way to do it (imo).

Can anyone suggest me any other solution? Is there a ready method in OpenCV for that ?

解决方案

I do not know of any ready-made solution for the C interface (CvRect), but if you use the C++ way (cv::Rect), you can easily say

interesect = r1 & r2;

The complete list of operations on rectangles is

// In addition to the class members, the following operations

// on rectangles are implemented:

// (shifting a rectangle by a certain offset)

// (expanding or shrinking a rectangle by a certain amount)

rect += point, rect -= point, rect += size, rect -= size (augmenting operations)

rect = rect1 & rect2 (rectangle intersection)

rect = rect1 | rect2 (minimum area rectangle containing rect2 and rect3 )

rect &= rect1, rect |= rect1 (and the corresponding augmenting operations)

rect == rect1, rect != rect1 (rectangle comparison)

你可能感兴趣的:(opencv检测相交点)