将矩形添加到梯形openCV C ++

时间:2019-01-04 15:00:58

标签: c++ opencv

我有两个区域的图像。我现在想将固定大小的矩形随机添加到area2中。图像的坐标原点位于左上角。我有area2的坐标。这是P1,P2,P3(0,y_max)和P4(x_max,y_max)。是否有人知道如何检查矩形是否位于该区域? 我可以尝试将该区域分为两部分,一个矩形(rect_area)和一个三角形(trangle_area)。对于rect_area,我可以使用

进行检查

bool intersects = ((rect_area & rect_random).area() > 0);(如果随机矩形位于区域内)。对于三角形,我发现了一些复杂的东西,例如:How to determine if a point is in a 2D triangle?

有人知道这样做更简单吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

您绘制的图形代表问题的一般情况吗?

  • P1.x == 0
  • P2.x == 0
  • q1.x == q2.x
  • q2.y == q3.y

如果满足以上条件,则可以检查

  • 如果q1在P1P2的线以下(q1.y>(q1.x *(p2.y-p1.y)/ x_max)+ p1.y)
  • q2高于p2(q2.y

enter image description here