仅使用平移和旋转将一组 2d 点与另一组 2d 点对齐

2024-03-07

我正在 OpenCV 中工作,但我认为没有这方面的功能。我可以找到一个用于查找仿射变换的函数,但是仿射变换包括缩放,而我只想考虑旋转+平移。

想象一下,我有两组 2d 点 - 假设每组恰好有 50 个点。

例如。设 A = {x1, y1, x2, y2, ... , x50, y50}

设 B = {x1', y1', x2', y2', ... , x50', y50'}

我想找到最接近将集合 A 映射到集合 B 的旋转和平移组合。我想我会将“最接近”定义为最小化 A 中的点与 B 中对应点之间的平均距离。即,最小化 (x1 , y1) 和 (x1', y1') 等

我想我可以使用强力测试所有可能的平移和旋转,但这效率极低。有谁知道更简单的方法吗?

Thanks!


这个问题在邻近矩阵(点对之间的距离)的奇异值分解方面有一个非常优雅的解决方案。这个的名字是正交普罗克拉斯特问题 http://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem,源自希腊传说,讲述的是一个人为旅行者提供一张适合任何人的床的故事。

解决方案来自于找到与给定(不一定是正交)矩阵最接近的正交矩阵。

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

仅使用平移和旋转将一组 2d 点与另一组 2d 点对齐 的相关文章

  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • 比较批处理文件中的两个数字

    我在这个网站上搜索了我的问题 但没有找到解决我问题的方法 系统为玩家和计算机提供一个从 2 到 12 的随机数 这有 3 部分 X 大于 Y 如果 X 小于 Y 以及当 X 与 Y 相同 当我开始 bat 效果很好 我选择Play Game
  • 用 tkinter 画圆更简单的方法?

    在a上画一个圆tkinter Canvas通常由create oval方法 然而 提供边界框通常是绘制圆的一种令人困惑的方式 想出一个捷径并不是特别困难 但我找不到其他人在做类似的事情 所以我将其发布 希望其他人发现它有用 这是一个称为猴子
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • OpenCV Mat 和 Leptonica Pix 之间的转换

    我需要在 C 中在 OpenCV Mat 图像和 Leptonica Pix 图像格式之间进行转换 这用于 8 位灰度图像的二值化 我发现发现了 ikaliga的回答 https stackoverflow com a 25929320 2
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • CGPoint 标量乘法 Swift

    我正在 SpriteKit 中构建一个平台游戏 并将为我的实体实现更新功能 以便它们根据重力和速度移动 但是 我需要使添加的速度量与增量时间成比例 以防止帧速率影响我的实体的移动方式 因此我将导入 GLKit 以便我可以使用标量函数 但是
  • 如何在 cv2.VideoWriter 中使用 FPS 参数?

    好的 所以我正在制作视频 我想确切地知道如何使用 FPS 参数 它是一个浮点数 所以我假设这是我想要的每帧之间的间隔 你能给个例子吗 我只想知道视频会如何随着 FPS 参数值的变化而变化 因为我制作的视频现在太快了 谢谢 确实只是这样 fr
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 如何将旋转的 NetCDF 转换回正常的纬度/经度网格?

    我有一个带有旋转坐标的 NetCDF 文件 我需要将其转换为正常的纬度 经度坐标 经度为 180到180 纬度为 90到90 library ncdf4 nc open dat nf 对于尺寸 它显示 1 5 variables exclu
  • 如何确保整数除法始终向上舍入?

    我想确保如有必要 整数除法总是向上舍入 还有比这更好的方法吗 目前正在进行大量选角工作 int Math Ceiling double myInt1 myInt2 更新 这个问题是我2013年1月博客的主题 http ericlippert
  • 如果数字小于 10,则显示前导零 [重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 相当于 printf string format https stackoverflow com questions 610406 javascript equivalent t
  • BRISK 特征检测器检测零个关键点

    下面显示的 Brisk 探测器没有给我任何关键点 有人可以提出一个问题吗 我将尝试用一些代码解释我在下面所做的事情 include opencv2 features2d features2d hpp using namespace cv u
  • C# 中的工作百分比

    我有两个值 其中一个是十进制值 和另一个值 该值将计算该小数值的百分比 例如 10 的 60 6 decimal value1 10 decimal percentage 60 textbox1 text mathsum here toSt
  • iphone opencv - 模板匹配

    我已经在我的 iphone 项目中实现了这个 OpenCV 构建 http aptogo co uk 2011 09 opencv framework for ios http aptogo co uk 2011 09 opencv fra
  • 如何在Python的SciPy中更改稀疏矩阵中的元素?

    我构建了一个小代码 我想用它来解决涉及大型稀疏矩阵的特征值问题 它工作正常 我现在要做的就是将稀疏矩阵中的一些元素设置为零 即最顶行中的元素 对应于实现边界条件 我可以调整下面的列向量 C0 C1 和 C2 来实现这一点 不过我想知道是否有
  • PHP 负面因素不断增加

    我这里有这个代码 remaining 0 foreach clientArrayInvoice as key gt row remaining remaining row total 它的作用是 它获取总计值并将它们相加 但是当我有负值时
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 如何使用 AdaBoost 进行特征选择?

    我想使用 AdaBoost 从大量 100k 中选择一组好的特征 AdaBoost 的工作原理是迭代功能集并根据功能的执行情况添加功能 它选择对现有特征集错误分类的样本表现良好的特征 我目前正在 Open CV 中使用CvBoost 我得到

随机推荐

  • jQuery 对话框主题和样式

    如何更改 jQuery 对话框标题栏的背景颜色 我看过themeroller 但它似乎对我不起作用 Thanks 您可以通过修改 ui dialog titlebar CSS 类来更改它 但我强烈建议您使用主题滚轮工具 http jquer
  • 我可以将 Sailsjs 部署到 AppHarbor 或 Heroku 吗?

    AppHarbor 使用 iisnode 支持 Node 我现在可以将 Sails js 应用程序部署到 AppHarbor吗 如果可以 如何部署 老实说 我不知道我在节点部署方面做了什么 但我正在尝试遵循我在网上阅读的内容 当我将代码部署
  • ACAccountCredential 为 oauthToken 返回 null

    我通过以下方式访问用户的 Facebook accStore requestAccessToAccountsWithType fbAccountType options options completion BOOL granted NSE
  • 如何在本地使用 Lambda Layers 测试 AWS SAM 应用程序?

    我正在使用 AWS SAM 和 API Gateway 创建一个 API 以将请求传递到多个 Lambda 处理程序函数 我在它们之间共享代码 因此我想使用 Lambda 层来避免重写冗余代码 在创建任何实际的 AWS 资源之前 我首先在本
  • Vertex AI 模型批量预测、引用云存储上的现有模型和输入文件的问题

    我正在努力正确设置 Vertex AI 管道 该管道执行以下操作 从 API 读取数据并存储到 GCS 并作为批量预测的输入 获取现有模型 Vertex AI 上的视频分类 使用点 1 的输入创建批量预测作业 正如您将看到的 我对 Vert
  • 移动开发 - 本机 VS 跨平台 VS JavaScript [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • React Typescript:看起来您正在尝试使用 TypeScript,但没有安装 TypeScript

    我想创建一个 React 应用程序 并且想在这个应用程序中使用 typescript 首先我访问了 React 网站 以便使用 typescript 创建一个应用程序 我发现我必须先将此指令放入终端中 npx create react ap
  • 测试存储过程的最佳方法是什么?

    像许多要求所有访问都通过存储过程进行的公司一样 我们似乎有很多业务逻辑被锁定在存储过程中 这些东西实在是很难测试 而且有些已经变得愚蠢又长了 是否有人拥有一套最佳实践 可以让您更轻松地自信地测试这些东西 目前 我们维护着 30 个左右的 问
  • WPF 将文件从 Windows 资源管理器拖放到 TreeView 上

    我正在尝试制作一个非常简单的程序 或者我认为的程序 将文件从桌面 资源管理器拖放到 wpf 树视图上 此示例中的树视图很简单 因此我可以隔离遇到的拖放问题 我已经将所有地方的AllowDrop设置为True 但我仍然无法触发Drop或Dra
  • 如何在不离开页面的情况下更改浏览器中的 URL?

    我现在正在编写一个复杂的 AJAX 应用程序 整个网站都有干净的 URL 目前 PHP 为每个页面创建基本布局 但我不想在用户单击链接时离开每个页面 并且我不想在 URL 中包含哈希 因为它不会 与网站的其余部分不相符 我知道这个问题以前在
  • 从 2d numpy 数组的每一行中选择随机非零元素

    我有一个二维数组 a array 5 0 1 0 0 1 3 5 2 3 0 0 4 0 2 4 3 2 0 3 和一维数组 b array 1 2 1 2 2 which b 告诉我们要从数组的每一行中选择多少个非零元素a 例如 b 0
  • Notepad++ 缓存文件位置

    在最新版本的 Notepad 上 当应用程序关闭时 重新启动应用程序时会保留未保存的文件 我认为这些文件缓存在临时文件中 该文件的位置是什么 谢谢 我自己注意到了 并在里面找到了文件backup文件夹 您可以检查它在哪里使用菜单 设置 gt
  • 碰撞检测布料js

    我正在使用 Fabric js 我使用以下函数将图像放在画布上 当我单击画布时 图像会放置在该位置 我想知道是否有方法可以检查天气 那里已经存在某些东西我点击的位置 特别是如果有其他图像或没有 document getElementById
  • PHP 数组和 HTML 表单下拉列表

    我有一个名为 categories 的简单 PHP 数组 如下所示 Array Closed gt P1000 Open gt P1001 Pending gt P1002 In Progress gt P1003 Requires App
  • 如何使用 swift 调用 size_t os_proc_available_memory(void)

    我从来没有从 Swift 调用 Obj C 函数 而且我看到的大部分信息都是用于导入框架等 所以我很难理解如何获取我需要的数据 我想获得我的应用程序可用的总可用内存 我所能找到的就是https developer apple com doc
  • 如何使列表框水平滚动

    我有一个包含长字符串的列表框 The beginning is not all that relevant for the user which is why I d like to make the listbox scroll auto
  • 将登录表单与 Mechanize 结合使用

    我知道 Stackoverflow 上有与此非常相似的帖子 但我似乎仍然无法弄清楚我的尝试出了什么问题 login to the site mech get base URL do page l page form with action
  • winform的动态数据

    我玩过动态数据网站 winform 有类似的东西吗 如果没有任何东西可以对 winform 做同样的事情 那么问题是为什么不呢 我们有一个庞大的 ERP 应用程序 我们希望将其从 AS400 迁移到 Net Winform应用程序 我最初的
  • 宏元编程

    我知道这可能是坏的或不可能的 但由于这不是递归宏 我认为它应该是可能的 define FOO 15 define MAKE BAR x BAR x define MY FOO BAR MAKE BAR FOO 我希望 MY FOO BAR
  • 仅使用平移和旋转将一组 2d 点与另一组 2d 点对齐

    我正在 OpenCV 中工作 但我认为没有这方面的功能 我可以找到一个用于查找仿射变换的函数 但是仿射变换包括缩放 而我只想考虑旋转 平移 想象一下 我有两组 2d 点 假设每组恰好有 50 个点 例如 设 A x1 y1 x2 y2 x5