我目前正在使用OpenCV创建一个系统,用于检测车辆是否在某些区域。到目前为止,我已经到了每辆车周围画出Rect
的地步。我的下一步是找到这些矩形的中心点,看看它是否属于特定区域。
我意识到这样做的最佳方式可能是找到Rect
四个角的坐标,然后取平均x
和平均y
- 坐标来查找中心点的坐标。但是,我不知道该怎么做。是否有一些功能可以让我直接访问OpenCV的Rect
坐标?
答案 0 :(得分:1)
编辑为原文:正如所指出的,我们不能使用' +'运算符直接在tl()和br()。
使用它来获取矩形的中心:
Point p1 = new Point(100, 100);
Point p2 = new Point(600, 800);
Rect myrect = new Rect(p1, p2);
System.out.println(String.format("Rectangle: %s", myrect));
Point centroid = new Point(myrect.x + 0.5*(myrect.width), myrect.y + 0.5*(myrect.height));
System.out.println(String.format("centroid: %s", centroid));
打印:
Rectangle: {100, 100, 500x700}
centroid: {350.0, 450.0}
旧答案:
[使用rect&#39方法:
tl ()
br ()
分别获得左上角和右下角。]
如果您确实想使用tl,则可以执行以下方法:
Point anotherCentroid = new Point(0.5 * (myrect.br().x + myrect.tl().x), 0.5 * (myrect.br().y + myrect.tl().y));