c ++中的曲线平滑

时间:2012-10-19 00:34:43

标签: c++ math smoothing

我想平滑曲线,我不知道要采用什么方法,模式存储在矢量中。

class Point2D
    {
    public:
        double x, y;
        Point2D() 
        {
            this->x=0; 
            this->y=0;
        }
        Point2D(double x, double y)
        {
            this->x = x;
            this->y = y;
        }
           }

vector<Point2D> vec1;

vec1:

         *
       *    *

    .        .
   .           . 
  .              .
 .                 .
.                    .    .
                        . 

平滑后的预期模式:

         *
       *    *
     .        .

   .             . 
  .                .
 .                  .
.                    .    .
                        . 

2 个答案:

答案 0 :(得分:3)

尝试拉普拉斯平滑。除了要保持固定的点(例如图中的星星)外,将每个点设置为其近邻的平均值。重复一次或两次,具体取决于您想要的平滑程度。

答案 1 :(得分:1)

这是一个模糊的问题,但如果您想要平滑一组数据,可以查看this

它是多项式回归的链接。然后,您可以使用拟合多项式在曲线上生成平滑点。

希望这会有所帮助。