OpenCV - 薄板样条翘曲的合适实现

2024-03-23

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

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

However, it's not working as I would want. I want to have the corners of the image fixed and just to move the corresponding points which define the face. I can illustrate this with 2 pictures. In the first picture I have the shape of the original face with the reconstructed shape. enter image description here

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

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


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

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是图像高度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV - 薄板样条翘曲的合适实现 的相关文章

  • 如何修复 scanf 将数据放入数组中?

    有人可以就 scanf 提出建议吗 message 是一个 4 行 x 16 列的数组 用户输入数字 全部为 1 位整数 后 按 Enter 键时会出现错误消息 正如所说 可能与 scanf 有关 for int i 0 i lt M i
  • 用 C 语言制作查找表的最佳方法是什么?

    我正在开发一个嵌入式 C 项目 我有一个 LCD 显示屏 每个字符都有一个 5x7 点阵 要显示特定字符 您必须移动与要打开的点相关的 5 个字节 所以我需要制作某种带有键的查找表 我可以在其中传递 ASCII 字符 并返回一个 5 字节的
  • 为什么 strcat() 之后字符串会被改变?

    这是源代码 int main char str dance char str1 hello char str2 abcd strcat str1 str2 printf s str output bcd why str更改后strcat s
  • 解决方案将无法构建,因为它无法从服务生成的类型转换为我的类型

    我有一个 WCF 服务项目 它构建得很好 可以生成可访问的 WSDL 并且 svcutil exe 不会生成任何错误 我有一个访问该 Web 服务的 服务管理器 项目 并且我已成功向其中添加了服务引用 ABCService 第三个项目包含我
  • 将 void* 作为函数调用而不声明函数指针

    我已经搜索过 但找不到任何结果 我的术语可能有问题 所以如果以前有人问过这个问题 请原谅我 我想知道是否有一种简单的方法可以调用void 作为 C 中的函数 无需首先声明函数指针 然后为函数指针分配地址 IE 假设要调用的函数是类型void
  • C# 检查闰年

    我想将输入日期 1 年添加到名为完成日期的列中 如果输入日期是闰年 我需要添加 364 天 如果不是 365 天的话 有没有办法在 c 中检查这一点 使用当前日期时间年份并操作闰年 不操作 然后添加天数 Thanks 您可以使用日期时间 I
  • 使用 Mono Cecil 添加 try-catch

    我正在使用 Mono Cecil 在另一个方法中注入代码 我想在我的代码周围添加一个 Try Catch 块 所以我写了一个带有 try catch 块的 HelloWorld exe 并反编译了它 Try Catch 的 Reflecto
  • 无法使用 process.ErrorDataReceived c# 获取进程错误输出

    我已经建立了Form我使用了一段时间的应用程序 现在我想捕捉StandardError我的流程及其standartOutput 我查看了答案SO and MSDN https msdn microsoft com en us library
  • Task.WaitAll 保持循环

    我正在尝试这个异步代码只是为了测试 async 关键字 public async Task
  • Windows 消息

    我需要发送带有自定义 ID 的自定义 Windows 消息 其他应用程序将侦听该消息 Windows 是否为内部消息保留任何预定义的消息 ID 范围 如 SQL Server 那样 内部消息最多为 50 000 The 文档 https m
  • FormsAuthentication.SetAuthCookie() 是否需要重定向?

    检查用户的凭据并确认其良好后 我正在使用FormsAuthentication SetAuthCookie Username false 对用户进行身份验证 然后在母版页中我使用Page User Identity IsAuthentica
  • 包含不同类型的两个集合相交

    假设我有一个集合 称之为ids它是类型IEnumerable
  • 如何声明和定义具有推导类型的静态成员?

    我需要定义一个具有复杂 许多模板参数 类型的静态成员 不是 constexpr 因此 希望有这样的东西 struct X static auto x makeObjectWithComplexType 但它不是 C 所以我尝试解决它 并认为
  • dev_t 和 ino_t 是否必须是整数类型?

    glibc 的文档保留它们是整数类型 不比 unsigned int 窄 但我没有找到说明它们必须是整数类型的标准参考 另请参阅 time t 所以最后 问题就变成了 include
  • 非数字输入导致死循环

    由于某种原因 如果用户输入了错误的数据类型 例如 j 或 循环将停止要求输入并继续显示 Enter an integer gt 一遍又一遍 如何让程序处理错误的输入 为什么输入非数字值会导致如此奇怪的行为 define SENTINEL 0
  • 缓冲区溢出(与)缓冲区溢出(与)堆栈溢出[重复]

    这个问题在这里已经有答案了 可能的重复 堆栈溢出和缓冲区溢出有什么区别 https stackoverflow com questions 1120575 what is the difference between a stack ove
  • Plink 通过 C# 返回不需要的字符

    通过 C 使用 Plink 时 我在结果前后收到不需要的字符 Command ls l informatica tgtdynamicparams out grep vaulttest grep Sep 1 awk print 9 sort
  • MDI 窗体中的子窗口对接

    我有一个 MDI 表单和其中的一些子表单 我将子窗体停靠到 MDI 窗口的不同区域 但是当任何子窗体失去焦点时 其他停靠的窗体将重新排列 由于混乱 我准备了一组图像来展示该行为 Image1 单击任何窗口之前 Image2 点击窗口2后 问
  • Security.h 中结构的 macOS 文档

    我正在尝试使用Security h通过 Java 和 JNA 的 macOS 框架 这意味着我需要将某些结构重建为 Java 类 问题是 当我查看文档中的结构时 this one https developer apple com refe
  • 为什么 typeof 函数在 C 中不起作用

    我使用GCC编译器 版本9 2 0 我想在 C 中使用 typeof 函数 但它会引发错误 错误 typeof 之前的预期表达式 如果您需要更多信息 请询问我 int a 5 double b the expected result is

随机推荐

  • MongoDB大型索引构建非常慢

    我收藏了 4 亿份文档 每个字段都有 6 个日期时间字段 1 个布尔字段 8 个双精度字段 9 个整数字段和 6 个字符串字段 我正在尝试建立以下索引 db MyCollection ensureIndex String1 1 String
  • 您能帮我在 Oracle 中编写一个过程,将数据从表假脱机到 CSV 文件吗?

    我正在编写一个过程来使用 Oracle 表中的数据创建 CSV 文件 我用了 spool filename 但错误来了 我可以用吗spool在 PL SQL 中 我认为在 Oracle 10g 11g 上有更好的方法来实现这一点 但这在 O
  • 为按钮点击事件添加参数

    我有一个像这样的 wpf 按钮
  • 如何使用 Google Sheet 脚本计算包含特定文本的单元格数量?

    如何使用 Google Sheet 脚本计算包含特定文本的单元格数量 目前 我正在使用以下脚本来计算包含特定文本的单元格数量 例如包含 完整 或 不完整 的单元格 function COUNT TEXT ACROSS SHEETS shee
  • Simplexml 获取带有命名空间的属性

    我有一个 XML 文档 其中包含带有命名空间的属性 XML 看起来像
  • 无法从 $this->db->last_query() 获取结果;代码点火器

    这是一个很简单的问题 必须讨论很多次 但我仍然无法得到 this gt db gt last query 的结果 this gt db gt select count as totalverified res sales upduser e
  • 如何使用 ITextSharp 将图像添加到 PDF?

    我想使用 iTextSharp 5 0 5 但没找到这个版本的教程 我下载了一些以前版本的教程 但出现错误 我只想通过 iTextSharp 将一些图像拼接成 pdf 文件 谁能给我代码吗 编辑 经过一段时间的研究 我终于弄清楚如何添加图像
  • 如何对 qt 图形视图小部件/项目进行单元测试

    我有一个广泛使用 Qt4 中的 GraphicsView 架构的应用程序 我想开始 ui 组件的自动化测试 但我找不到任何与what我应该测试或如何测试基于 qgraphicsview qgraphicswidget 的类 我在尝试对 QG
  • Rails:我无法在重定向中传递验证错误

    所以这是一个简单的项目 其中有产品 您可以对其进行投标 想想易趣 我构建的项目如下 rails new routetest rails g scaffold product productname reserveprice integer
  • 有没有办法在没有“e”参数的情况下阻止 JavaScript 中的气泡?

    我看到很多教程告诉我防止气泡的方法是使用 e 参数 就像 function e e preventDefault 但在某些情况下 萤火虫告诉我 e is not Define 是错误的 那么有没有办法不用参数e就可以阻止气泡呢 如果您使用元
  • 使用 PHP 上传非常大的数据

    我想允许将非常大的文件上传到我们的 PHP 应用程序中 数百兆 8 GB 然而 这存在一些问题 Browser HTML 上传的反馈很糟糕 我们需要轮询进度 这有点傻 或者根本不显示任何反馈 Flash 上传程序在开始上传之前将整个文件放入
  • PHP,读取通过cURL发送的XML文件

    我有这段代码 通过 cURL 将 XML 文件中的数据发送到新闻办公室 现在我希望得到媒体的反馈 表明我的订单已确认或完成 我也希望将其包含在 XML 文件中 我知道如何通过curl发送文件 现在我想知道如何接收它们 以便我可以读出数据 欢
  • 优化:将浮点数乘以整数还是另一个浮点数更快

    如果我尝试将浮点数乘以整数 则将其乘以整数表示的整数是否更快 int x float y 0 5784f x Where x contains a dynamically chosen whole number 或通过另一个浮点数 前提是精
  • 猫鼬网络服务器 helloworld 程序

    我遇到了一个名为 mongoose 的嵌入式 Web 服务器http code google com p mongoose http code google com p mongoose 我读了维基 它很棒 我搜索了一些示例 hello w
  • iOS 中屏幕关闭/设备锁定时定时器不运行

    应用程序位于后台 在与 BLE 设备断开连接时会收到回调 之后应用程序必须等待一段时间 1 分钟 然后执行一些代码 如果屏幕打开 即使在后台 应用程序也会按预期运行 但是 如果屏幕关闭 则计时器将无法工作 并且应用程序不会按预期执行 这是
  • bash 正则表达式带引号?

    下面的代码 number 1 if number 0 9 then echo matched fi 作品 但是 如果我尝试在正则表达式中使用引号 它就会停止 number 1 if number 0 9 then echo matched
  • Angular Material Stepper - 如何动态创建组件以加载到步骤中

    我看过很多类似的帖子 我希望能够使用 ngFor创建组件然后加载到步骤中材料步进机 https material angular io components stepper overview 我一直在关注一个动态加载示例 https sta
  • Symfony 2.8+,教义继承和形式

    在开始之前 请注意我正在学习 symfony 所以请记住这一点 我只是想了解它是如何工作的 这就是我想要实现的目标 我想使用学说制作一个实体继承的简单示例 这就是我的示例的样子 摘要父类 特点 儿童1班 Magician 儿童2班 Warr
  • 如何更改mvc3中razor中LabelFor的显示名称?

    在我用过的剃须刀引擎中LabelFor显示名称的辅助方法 但显示名称似乎不太好显示 所以我需要更改我的显示名称该怎么做 Html LabelFor model gt model SomekingStatus new class contro
  • OpenCV - 薄板样条翘曲的合适实现

    我有一张脸的形状以及该脸的重建 我想对初始形状的相应图像进行建模 基本上 我想将点从原始形状移动到面部重建指示的位置 我尝试通过使用薄板样条翘曲来做到这一点 它的实现如下 http ipwithopencv blogspot ro 2010