答案 0 :(得分:3)
解决问题的方法之一是对形状进行矢量化(从简单的强度空间移动到向量空间)。
我不了解这个领域的最新技术。但是,根据学校信息,我可以建议这个解决方案。
Bezier curves,你可以尝试使用简单的贝塞尔曲线来塑造你的形状。这不是一个难以操作的谷歌,你可以谷歌打几十个。然后,您可以根据需要调整大小,然后可以将其渲染为简单图像。 请注意,您也可以Splines代替Bezier。
另一种方法更简单但效率更低。由于您提到了OpenCV,您可以在点上应用cv::fitEllipse。请注意,这将返回包含椭圆的RotatedRect
。你可以像这样推断你的椭圆:
Center = Center of RotatedRect.
Longest Radius = The Line which pass from the center and intersect with the two small sides of the RotatedRect.
Smallest Radius = The Line which pass from the center and intersect with the two long sides of the RotatedRect.
获得椭圆参数后,您可以根据需要调整其大小,然后使用cv::ellipse以您想要的大小重新绘制它。
我知道这是一个伪答案。但是,我认为每件事都很容易申请。如果你在实施它时遇到任何问题,请给我一个评论。