C++ 计算多边形的最小面积矩形
我需要计算多边形周围的最小面积矩形(最小可能矩形) 我唯一的输入是多边形中的点数C++ 计算多边形的最小面积矩形,c++,c,geometry,java,C++,C,Geometry,Java,我需要计算多边形周围的最小面积矩形(最小可能矩形) 我唯一的输入是多边形中的点数 我也有点的坐标。使用凸多边形的算法,或者凸壳。您当然需要多边形中点的坐标,而不仅仅是点的数量。显然,您需要点的坐标才能得到答案。如果矩形与X和Y顶点对齐,则解决方案很简单。如果您想要在任何角度上获得尽可能最小的矩形,则需要执行某种优化过程 这就是所谓的,它是OCR包中使用的最基本的算法。您可以从包中找到使用旋转卡钳的实现。获得源代码后,请查看此文件 cv/src/cvrotcalipers.cpp 您需要的方法是
我也有点的坐标。使用凸多边形的算法,或者凸壳。您当然需要多边形中点的坐标,而不仅仅是点的数量。显然,您需要点的坐标才能得到答案。如果矩形与X和Y顶点对齐,则解决方案很简单。如果您想要在任何角度上获得尽可能最小的矩形,则需要执行某种优化过程 这就是所谓的,它是OCR包中使用的最基本的算法。您可以从包中找到使用旋转卡钳的实现。获得源代码后,请查看此文件
cv/src/cvrotcalipers.cpp
您需要的方法是
cvminarealect2()
首先执行一项操作,并获取点集的值。然后您可以使用类似于的方法,并遵循以下算法
有关更多详细信息,请查看链接是否仅查看点数?或者你也有坐标吗?多边形是任意方向的还是矩形必须与坐标系正交?你需要坐标。或者,具有一条边的长度,并且限制所有边具有相同的长度。或者你可以回答:4。(矩形中的点数)呵呵。是的,多边形可以是任意方向的,对于矩形,你认为它应该是在面积方面尽可能相同的。你自己也试过吗?我想这会对我有帮助。。更精确地说,我必须计算多边形的宽度和长度!!!这不是问题:当你应用算法时,你会依次计算与每条边对齐的边界框的宽度和长度。你能详细说明一下优化过程吗?有几个人已经提到了旋转卡钳算法。基本上就是这样做的。你做的是基本的最小/最大边界框,但是坐标系旋转到每边的角度。我找不到这个方法的正确答案。你能告诉我这个感恩节的确切时间吗