mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 22:44:02 +08:00
imgproc: add rotatedRectangleIntersection empty input handling
This commit is contained in:
parent
ef27c11d50
commit
17faee5d81
@ -54,6 +54,12 @@ int rotatedRectangleIntersection( const RotatedRect& rect1, const RotatedRect& r
|
||||
// L2 metric
|
||||
const float samePointEps = std::max(1e-16f, 1e-6f * (float)std::max(rect1.size.area(), rect2.size.area()));
|
||||
|
||||
if (rect1.size.empty() || rect2.size.empty())
|
||||
{
|
||||
intersectingRegion.release();
|
||||
return INTERSECT_NONE;
|
||||
}
|
||||
|
||||
Point2f vec1[4], vec2[4];
|
||||
Point2f pts1[4], pts2[4];
|
||||
|
||||
|
@ -366,4 +366,29 @@ TEST(Imgproc_RotatedRectangleIntersection, regression_12221_2)
|
||||
EXPECT_LE(intersections.size(), (size_t)8);
|
||||
}
|
||||
|
||||
TEST(Imgproc_RotatedRectangleIntersection, regression_18520)
|
||||
{
|
||||
RotatedRect rr_empty(
|
||||
Point2f(2, 2),
|
||||
Size2f(0, 0), // empty
|
||||
0);
|
||||
RotatedRect rr(
|
||||
Point2f(50, 50),
|
||||
Size2f(4, 4),
|
||||
0);
|
||||
|
||||
{
|
||||
std::vector<Point2f> intersections;
|
||||
int interType = cv::rotatedRectangleIntersection(rr_empty, rr, intersections);
|
||||
EXPECT_EQ(INTERSECT_NONE, interType) << "rr_empty, rr";
|
||||
EXPECT_EQ((size_t)0, intersections.size()) << "rr_empty, rr";
|
||||
}
|
||||
{
|
||||
std::vector<Point2f> intersections;
|
||||
int interType = cv::rotatedRectangleIntersection(rr, rr_empty, intersections);
|
||||
EXPECT_EQ(INTERSECT_NONE, interType) << "rr, rr_empty";
|
||||
EXPECT_EQ((size_t)0, intersections.size()) << "rr, rr_empty";
|
||||
}
|
||||
}
|
||||
|
||||
}} // namespace
|
||||
|
Loading…
Reference in New Issue
Block a user