目录
1.问题
如图1.1所示,有红色和蓝色两个点,如何判断点相对于矩形的位置呢?
2.思路
首先,我们知道OpenCV中有一个函数:pointPolygonTest()。它的作用是判断一个点是否在轮廓中,基本用法如下:
C++: double pointPolygonTest(InputArray contour, Point2f pt, bool measureDist);
当measureDist设置为true时,若返回值为正,表示点在轮廓内部,返回值为负,表示在轮廓外部,返回值为0,表示在轮廓上。
当measureDist设置为false时,若返回值为+1,表示点在轮廓内部,返回值为-1,表示在轮廓外部,返回值为0,表示在轮廓上。
这也就是说,如果我们能够把RotateRect类的对象表示成轮廓,就可以直接调用pointPolygonTest()来进行分析了点的相对位置了。
在这里,我对RotatedRect的成员进行简单的梳理:
RotatedRect ():
构造函数:
1.利用浮点参数进行构造:形心、长宽、旋转角度(x轴逆时针旋转的方向)</