数学吧 关注:837,065贴子:8,552,130
  • 5回复贴,共1

【Fun with Math】用Mathematica拟合quailty的头像>_<

取消只看楼主收藏回复

前几天看到有人在某社区问下面这个鸟叔函数是怎么做出来的[1]:

从[1]可以看到这个图像的函数方程,着实令人蛋疼菊紧:(如果乃们有人机器不行电脑被卡了不要怪我


1楼2013-02-09 17:54回复
    下面是真正的难点——从一幅图中把可以sketch整幅图的曲线提取出来。[3]提供了一种思路。想要得到一幅效果良好的曲线图要经过精心的预处理。不过已经不属于我们讨论的范围了。于是在吧里寻找一下,发现神级般存在的quailty的头像可以直接用,而且兔斯基什么最萌了。

    好吧,弄进Mathematica。先做预处理。模糊是为了获得平滑的边缘,从而获得更快的收敛速度。

    [4]中可以找到拟合的核心代码:

    param用Fourier函数拟合数据,tocurve返回参数方程。
    限于速度神马的这里我们只取了前Fourier级数的前30项。
    然后Ctrl+Enter,得到参数方程~(下面只有一部分)


    3楼2013-02-09 17:55
    收起回复
      下面是取前30项和500项的一个对比:

      结果符合我们的预测,取的项数越多得到的结果越平滑、越符合原图。


      5楼2013-02-09 17:55
      回复
        那么就是这样了~祝数吧的各位新年快乐~

        (呃 做成图片是怕被抽 求理解)


        9楼2013-02-09 17:59
        回复
          不会吧 我刚刚才试的 没有问题的啊。

          @几用来包


          71楼2013-02-10 19:35
          回复
            这边有源码 你直接复制过来应该没有问题
            http://mathematica.stackexchange.com/questions/17704/how-to-create-new-person-curve
            @几用来包


            73楼2013-02-10 19:40
            收起回复