【问题标题】:OpenCV - suitable implementation for Thin - Plate Spline WarpingOpenCV - 薄板样条翘曲的合适实现
【发布时间】:2012-10-23 05:19:05
【问题描述】:

我有一张脸的形状以及那张脸的重建,我想对初始形状的相应图像进行建模。

基本上,我想将点从原始形状移动到重建面部所指示的位置。我试图通过使用薄板样条翘曲来做到这一点,它的实现:http://ipwithopencv.blogspot.ro/2010/01/thin-plate-spline-example.html

但是,它并没有像我想要的那样工作。我想固定图像的角,只是移动定义面部的相应点。我可以用两张图片来说明这一点。在第一张图片中,我有原始脸的形状和重建的形状。

在这里,我有我想要修改的图片和使用上述链接中的代码生成的图片。绿点标记原始面部点,蓝点标记它们的新位置以及我想要重新定位它们并拉伸我的脸的位置。

我想要的只是将绿点移动到蓝点,使其看起来变形。您知道您测试过的任何方法吗?

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    固定角落非常容易。只需为四个图像角添加四个额外的对应关系。就你的例子而言:

    iP.push_back(cv::Point(0, 0));
    iiP.push_back(cv::Point(0, 0));
    iP.push_back(cv::Point(0, height-1));
    iiP.push_back(cv::Point(0, height-1));
    iP.push_back(cv::Point(width-1, 0));
    iiP.push_back(cv::Point(width-1, 0));
    iP.push_back(cv::Point(width-1, height-1));
    iiP.push_back(cv::Point(width-1, height-1));
    

    当然,width 是图像宽度,height 是图像高度

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-28
      • 2016-02-19
      • 2013-07-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 2023-01-03
      • 2015-01-10
      相关资源
      最近更新 更多