gpt4 book ai didi

c++ - 我如何使用 C++ 将点拟合到曲线?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:04 25 4
gpt4 key购买 nike

图片上有个椭圆,如下图

enter image description here

我使用 opencv 得到了轮廓的点。但是你可以看到图片,因为分辨率低,轮廓上有一条直线。我怎样才能像蓝线那样把它拟合成曲线?

enter image description here

最佳答案

解决您的问题的方法之一是向量化您的形状(从简单的强度空间移动到 vector 空间)。

我不知道该领域的最新技术水平。但是,根据学校信息,我可以建议这个解决方案。

Bezier curves ,您可以尝试使用简单的贝塞尔曲线对您的形状进行建模。这不是一项艰巨的操作,您可以在谷歌上搜索其中的十几个。然后,您可以根据需要调整它的大小,然后将其渲染为简单图像。请注意,您也可以 Splines而不是贝塞尔曲线。


另一种方法会更简单但效率较低。由于您提到了 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 将其重新绘制成您想要的大小。 .

我知道这是一个伪答案。但是,我认为每件事都很容易应用。如果您在实现它时遇到任何问题,请给我评论。

关于c++ - 我如何使用 C++ 将点拟合到曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34805956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com