单应性估计 -> 结果是仿射矩阵?

2024-01-07

我正在开发一个基于平面标记的姿态估计系统(使用 Matlab)。 为了做到这一点,我检测网络摄像头捕获的图像中的一个矩形,获取 4 个角点的坐标,并计算这些角点之间齐次坐标的单应性,例如

     58     46     75     90
 M = 67    108    133     89
      1      1      1      1

其中第一行是垂直坐标,第二行是水平坐标。

我使用 DLT(使用我在网上找到的几种不同的单应性计算函数,以及 Matlab 的 cp2tform,它们都给出相同的结果)计算这些点和参考点之间的单应性,因为我知道标记是一个正方形,

     1     1   100   100
 m = 1   100   100     1
     1     1     1     1

[Edit:它们都按逆时针顺序排序,所以我确保它们匹配。]

然后我绘制这些参考点的重投影

 m* = H*m

回到网络摄像头图像中,以查看单应性的拟合程度。

只要我仅围绕 z 轴(= 标记的法向量)旋转(即将其放在网络摄像头前面并手动倾斜)标记,结果就很好;重新投影的点几乎完全投影到之前检测到的标记角点上,并且分解的 z 轴角度计算得很好。

但是,如果我绕 x 和/或 y 轴旋转标记,重新投影的点会逐渐偏离很多。然后我意识到计算出的单应矩阵 H 几乎是一个仿射矩阵,例如H=

    0.2339   -0.0967   57.8362
H = 0.1339    0.4714   66.3639
   -0.0010    0.0005    1.0000

(无论我如何倾斜标记,元素 h31 和 h32 几乎为零)这可以通过查看重新投影点来确认,这些点总是看起来像是仿射变换的结果,而不是投影变换的结果。毫不奇怪,x 轴和 y 轴的分解角度几乎为零/等于零。

显然我在网上找到的函数不可能都把单应性计算弄错,Matlab的cp2tform也不能,但不幸的是我没有看到或不明白我的错误是什么。它一定是在像素坐标的使用中,但由于查看了许多单应性解释并搜索“单应性估计结果仿射”没有产生任何结果,如果有人能指出我正确的方向,我会非常高兴。

Thanks.


正如我从注释中提供的值 @mmpg 中看到的,我的 y 轴和 x 轴仍然切换为匹配 Matlab 的图像坐标系(y 第一,x 第二),这证明是问题所在。 我没有想到这样一个基本问题,因为我得到的单应性在很大的角度范围内都非常接近正确的单应性。

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

单应性估计 -> 结果是仿射矩阵? 的相关文章

  • 如何使用OpenGL模拟OpenCV的warpPerspective功能(透视变换)

    我在 Python 和 C 中使用 OpenCV 完成了图像变形 看到可口可乐徽标在我选择的角落变形 使用以下图像 和这个 完整专辑 包含过渡图片和说明 https i stack imgur com 40pdD jpg 我确实需要这样做
  • 将点云转换为深度/多通道图像

    我有一个通过使用立体相机扫描平面生成的点云 我已经生成了法线 fpfh 等特征 并使用这些信息我想对点云中的区域进行分类 为了能够使用更传统的 CNN 方法 我想将此点云转换为 opencv 中的多通道图像 我将点云折叠到 XY 平面 并与
  • 如何在 Spring Data REST 项目中使用 DTO?

    Spring Data REST 自动仅公开域对象 但大多数情况下我们必须处理数据传输对象 那么如何以SDR方式做到这一点呢 一种如何合作的方法DTO https en wikipedia org wiki Data transfer ob
  • QGraphicsView 和 QGraphicsItem:缩放视图矩形时不缩放项目

    我正在使用 QtQGraphicsView and QGraphicsItem 子类 当视图矩形更改时 有没有办法不缩放视图中项目的图形表示 例如放大时 默认行为是我的项目相对于我的视图矩形进行缩放 我想可视化二维点 这些点应该由一个细矩形
  • 检测不同分辨率下的图像相等性

    我正在尝试构建一个脚本来浏览我的原始高分辨率照片 并替换我在拥有专业帐户之前上传到 Flickr 的旧的低分辨率照片 对于其中许多 我可以只使用 Exif 信息 例如拍摄日期 来确定匹配 但有些确实很旧 要么原始文件没有 Exif 信息 要
  • 如何将页面图片拉直,使其看起来像扫描的一样?

    我看过应用程序 想知道如何以编程方式拍摄图像 定义它需要如何转换 以便它看起来与相机平行 而不是倾斜透视 然后合并多张照片以创建 pdf 文件 例如这个应用程序就是这样做的 我不会用书籍来做这些琐碎的事情 所以很抱歉我不能推荐任何书籍 尤其
  • 如何使用 Python OpenCV 定义阈值以仅检测图像中的绿色对象?

    我只想从自然环境中捕获的图像中检测绿色物体 我该如何定义它 因为在这里我想通过阈值 所以我们说 x 通过使用这个x 我只想将绿色对象变成一种颜色 白色 而其他对象必须以另一种颜色 黑色 出现 我该怎么做 One way 我制作了 HSV 颜
  • 在 python 上使用 TensorRT .engine 文件进行推理

    我使用 Nvidia 的迁移学习工具包 TLT 进行训练 然后使用 tlt converter 将 etlt 模型转换为 engine 文件 我想使用这个 engine 文件在 python 中进行推理 但由于我使用 TLT 进行训练 因此
  • pytesseract 无法按预期识别文本?

    我正在尝试通过 opencv 和 pytesseract 运行一个简单的车牌图像来获取文本 但我无法从中获取任何内容 按照此处的教程进行操作 https Circuitdigest com microcontroller projects
  • Microsoft 计算机视觉 API 或 Google 的 Cloud Vision API 是否可以获取对象的位置?

    我正在尝试开发一个需要知道图像中标记对象位置的应用程序 知道图像中有一架 钢琴 还不够 我需要知道钢琴在图像中的位置 微软的计算机视觉 API 和谷歌的云视觉 API 都提供了某种形式的裁剪建议 智能缩略图生成服务 这让我认为某些对象的位置
  • 使用高斯混合模型进行皮肤检测

    我正在根据以下进行皮肤检测算法本文 http www cc gatech edu rehg Papers SkinDetect IJCV lowres pdf 第 21 页有两个模型 高斯皮肤混合模型和非皮肤颜色模型 第一个皮肤检测模型效果
  • 数据编织转换

    我有 POST 方法的以下有效负载的输入 order Column X X Column Y Y Column Z Z Column W div 1 some text div 2 true div 3 2 mapper A
  • 在 iPad 上使用 OpenCV 避免碰撞

    我正在开展一个项目 需要使用 OpenCV 实现碰撞避免 这是在 iOS 上完成的 iOS 5 及以上版本即可 项目目标 这个想法是将 iPad 安装在汽车仪表板上并启动应用程序 应用程序应该从相机中抓取帧并进行处理 以检测汽车是否会与任何
  • 在 TensorFlow 中将多个字节读取到单个值中

    我尝试以 TensorFlow 中 cifar10 示例中描述的类似方式读取标签 label bytes 2 it was 1 in the original version result key value reader read fil
  • 使用相位相关和对数极坐标变换获得旋转位移

    我一直在编写一个脚本 它使用 cv2 计算两个图像之间的旋转位移phaseCorrelate method 我有两张图像 第二张是第一张图像的 90 度旋转版本 加载图像后 我将它们转换为对数极坐标 然后将它们传递到phaseCorrela
  • 使用 Stringstream 将字符串转换为 Int

    这里有一个小问题 int IntegerTransformer transformFrom std string string stream gt clear std cout lt
  • opencv createsamples没有错误,但是没有找到样本

    我在用着this http coding robin de 2013 07 22 train your own opencv haar classifier html教程 我正在根据我的正面图像创建大量样本 我正在使用 Windows 这是
  • TensorFlow - 为什么这个 softmax 回归没有学到任何东西?

    我的目标是用 TensorFlow 做大事 但我正在尝试从小事做起 我有一些小的灰度方块 有一点噪音 我想根据它们的颜色对它们进行分类 例如 3 个类别 黑色 灰色 白色 我编写了一个小 Python 类来生成正方形和 1 hot 向量 并
  • 对齐坐标系

    Let s say I have 2 coordinate systems as it is shown in image attached 如何对齐这个坐标系 我知道我需要将第二个坐标系围绕 X 平移 180 度 然后将其平移到第一个坐标
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速

随机推荐

  • 枚举不应该在 API 中使用吗?

    我正在使用提供给我的已编译的 C 库 我对编译库时使用的编译器 版本 选项等的信息有限 库接口使用enum既可以在传递的结构中 也可以直接作为传递的参数 问题是 如何确保或确定当我编译代码以使用提供的库时 我的编译器将为这些库使用相同的大小
  • 如何将 Gradle 中的原生 JUnit 5 支持与 Kotlin DSL 结合使用?

    我想将内置 JUnit 5 与 Gradle Kotlin DSL 一起使用 因为在构建过程中我收到此警告 WARNING The junit platform gradle plugin is deprecated and will be
  • 所有构建的 gcloud 步骤超时的全局限制在哪里设置?

    在哪里可以找到 gcloud 构建步骤超时的全局限制 这是我的 gcloud 构建配置 steps name gcr io cloud builders yarn name gcr io cloud builders yarn args b
  • 在 yaml.dump Python 中强制引用

    在我进入之前 是的 我已经研究过它并且知道 YAML 不区分引号和非引号 而只是按原样获取类型 坦率地说 我认为没有引号更好 但不幸的是这不是我需要的 所以请尝试理解我have研究了这个问题 但仍然需要我的字符串对象周围的引号 在我的代码中
  • readAsDataURL 不处理 captureAudio 中的文件

    我的 FileReader 对象可以完美上传图像 我正在追踪onload以及其他事件 这些都在我上传图像时发生 fileReader new FileReader fileReader onloadstart e gt window ale
  • 在根模块中使用 aws_vpc 数据源的 Terraform 鸡/蛋问题

    我有一个根 Terraform 模块 它声明了 VPC 模块和其他模块 例如要在 VPC 中启动的 EC2 实例 在 EC2 模块中 我使用以下命令读取 VPCaws vpc type data aws vpc vpc filter nam
  • 在 Java 中将 DatagramPacket 转换为字节数组后解析它

    我正在尝试解析我将在套接字上收到的 DatagramPacket 我知道我将收到的数据包的格式 即 DHCPREQUEST 数据包 但我认为这并不重要 为了简单起见 我们只考虑前六个字段 第一个字段是 操作码 为 1 个字节 第二个字段是
  • 将调整大小的位图文件设置为 MFC 优化校准

    有没有比这更简单的方法 如果这是唯一的方法 这里是否存在潜在的内存泄漏 CImage img1 int dimx 100 dimy 100 img1 Load filename filename path on local system t
  • 内容安全策略 Internet Explorer 错误

    我添加了 Content Security Policy 它在 Chrome Firefox 和 Opera 上工作正常 但在 Internet Explorer 11 上我遇到此错误 此页面无法显示 add header Content
  • 多个图像处理程序调用导致 IE 在弹出窗口中挂起

    我们有一个ashx图像处理程序在过去几年中表现相当不错 但我们最近注意到一些奇怪的间歇性行为IE8 and IE9 我们有一个图库页面 作为图像 src 属性的一部分多次调用图像处理程序 该页面在弹出窗口中打开 该页面工作正常 但当窗口快速
  • 使用生成的匿名登录 ID 登录用户

    我正在编写一个 Android 应用程序 我正在尝试让用户匿名登录 这样他们就不必经历任何类型的注册过程 我将他们的匿名用户 ID 存储在共享首选项中 当应用程序打开时 我尝试根据该用户 ID 登录他们 我试图找出执行此操作的正确方法 因为
  • Centos htaccess 不被读取

    我正在开发一台新服务器 并通过 yum 安装了 Web Server 组 Php 和 mysql 工作正常 但我无法让 htaccess 工作 这是我的测试 htaccess 文件 WASD TEST CALL ERROR 我将其作为 ht
  • 简单的 IPython 示例在 sys.exit() 上引发异常

    我正在 IPython 中做一些非常简单的 PySide 和 PyQt 教程 一个教程只是创建一个带有一些滑块的窗口来演示插槽和信号 当我关闭正在运行的演示应用程序的窗口时 我看到以下错误 An exception has occurred
  • 访问在缓存块 Rmarkdown 文档中创建的全局环境对象

    我想运行 R 脚本来运行模拟并缓存 Rmarkdown 文档的结果 我正在使用 Rstudio 并尝试使用 knit HTML 创建 HTML 报告 这是一个简单的示例 r test global env cache TRUE print
  • 局部静态和局部变量的内存分配

    1 void main void int ptr1 ptr1 int malloc 2 void main void static int ptr2 ptr2 int malloc 我想问ptr1和ptr2的内存分配是如何完成的 The p
  • 如何在VBA中将自动生成的单选按钮设置为true?

    我正在创建一个 Excel 工作表 其中根据特定参数的值自动生成单选按钮 请参阅此以获得清晰的理解 复制一组单选按钮n次数 在哪里n是引用参数的行数 应根据条件检查此自动生成矩阵中的每个单选按钮 并且在与条件匹配的一组中 十二个单选按钮之一
  • CSS 中的 HTML 注释?

    我正在查看一些Amazon http en wikipedia org wiki Amazon com的 CSS 并注意到他们用 HTML 注释掉了 CSS 的一大块 我知道 Internet Explorer 具有 HTML 注释的条件格
  • “项目覆盖率设置为 0%” – JaCoCo 和 Sonar 在 Jenkins 中与 Ant

    我将工作从单个 Hudson 机器转移到了多从机 Jenkins 环境 现在 JaCoCo 覆盖范围不再起作用 工作 旧 哈德森2 0 1 詹金斯声纳插件 1 7 1 声纳2 1 2 破损 新 詹金斯 1 446 詹金斯声纳插件 1 7 2
  • Woocommerce 管理员订单详细信息 - 在订单详细信息页面上显示自定义数据

    我已经搜索并尝试了两天 但没有成功 请帮忙 我想过滤 woocommerce 订单 以根据产品属性将附加详细信息从数据库添加到订单详细信息页面 但我找不到适合此任务的 woocommerce 操作 过滤器挂钩 这里假设我有变量 is cus
  • 单应性估计 -> 结果是仿射矩阵?

    我正在开发一个基于平面标记的姿态估计系统 使用 Matlab 为了做到这一点 我检测网络摄像头捕获的图像中的一个矩形 获取 4 个角点的坐标 并计算这些角点之间齐次坐标的单应性 例如 58 46 75 90 M 67 108 133 89