在opencv python中分解单应性矩阵

2024-03-28

H = K[R|t] 其中H(3*3)是单应矩阵,R是旋转矩阵,K是相机内参数矩阵,t是平移向量。

我使用棋盘模式计算了 K,如下所示

ret, K, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, chess_gray.shape[::-1],None,None)

单应性矩阵 H 计算为

pts_src = np.float32(pts_src)
pts_dst = np.float32(pts_dst)
H, status = cv2.findHomography(pts_src, pts_dst)

如何使用 H 和 K 分解 R 和 t

cv2.decomposeHomograpyMat(H,K,....)

如何编写上述函数的其他输入和输出?


假设 H 为单应矩阵,K 为相机矩阵,Python 代码为:

num, Rs, Ts, Ns  = cv2.decomposeHomographyMat(H, K)

num将返回可能的解决方案。

Rs 包含旋转矩阵的列表。
Ts 包含平移向量的列表。
Ns 包含平面法向量的列表。

有关更多信息,请查看官方文档:
OpenCV 3.4 - decomposeHomographyMat() https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html#ga7f60bdff78833d1e3fd6d9d0fd538d92

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

在opencv python中分解单应性矩阵 的相关文章

随机推荐

  • java.lang.IllegalArgumentException:未找到命名查询:

    我得到以下代码 Stateless public class BondecomandeDAO PersistenceContext private EntityManager em public Bondecommande findBCby
  • 检测 iframe 对象中的 src/位置更改

    我有一个 iframe 对象指向特定页面 例如 我希望每当 iframe 的位置发生变化时都会收到警报 因为用户单击了其中的链接 Doing onLoad alert this ContentWindow location href 什么也
  • 在 C++ 中是否有模仿 Java try/finally 的常用习惯用法?

    从事 Java 工作很多年了 所以一直没有关注 C 有finally子句是否已添加到语言定义中的 C 异常处理中 有没有一种流行的模仿 Java 的 try finally 的习惯用法 我还担心 C 没有一个终极超类型来处理所有可能抛出的异
  • .NET Micro Framework 不安全代码

    NET Micro Framework 是否支持不安全代码 换句话说 我可以在 NET Micro Framework 的代码中使用指针吗 来自维基百科页面 http en wikipedia org wiki NET Micro Fram
  • 使用 ARC 手动保留

    在 ARC 之前 我有以下代码 可以在异步操作正在进行时保留委托 void startAsyncWork delegate retain calls executeAsyncWork asynchronously void executeA
  • 如何获得带有括号和所有内容的 SQL Server 列定义?

    我需要一种智能方法 以可在 CREATE TABLE 语句中使用的方式从 INFORMATION SCHEMA COLUMNS 中获取数据类型 问题是需要理解的 额外 字段 例如 NUMERIC 精度和数字 SCALE 显然 我可以忽略 I
  • 在 HIVE 中选择该月的第一天

    我正在使用 Hive 它与 SQL 类似 但对于 SQL 用户来说语法可能略有不同 我看过其他的stackoverflow 但它们似乎在SQL中具有不同的语法 我试图通过此查询获取该月的第一天 这给了我今天的一天 例如 如果今天是 2015
  • Android:尝试序列化...忘记注册类型适配器?”

    如何使用 HashMap 转换为 JSONGson https code google com p google gson class ClassData public String jsonString public Class clas
  • 将输出分配给 Bash 中的变量[重复]

    这个问题在这里已经有答案了 我试图将 cURL 的输出分配给一个变量 如下所示 bin sh IP curl automation whatismyip com n09230945 asp echo IP sed s IP IP nsupd
  • MSSQL - JPA - 特殊字符的字符编码 - 附加“N”nativeQuery

    我使用 Spring 4 3 1 和 JPA 2 0 并连接到 MSSQL 我正在使用 JpaRepository 的 save 方法来插入和更新数据 其中一个字段具有 nvarchar 它可以包含特殊字符 如拉丁文 中文 另外 我在 ap
  • 如何使用反射来调用私有方法?

    我的类中有一组私有方法 我需要根据输入值动态调用一个方法 调用代码和目标方法都在同一个实例中 代码如下所示 MethodInfo dynMethod this GetType GetMethod Draw itemType dynMetho
  • TypeScript 字符串并集不可分配给函数中元组的并集

    这两个示例的行为应该是相同的 但第二个示例出现错误 为什么 Example 1 const a x y x const b x y a ok Example 2 function fn a x y const b x y a Type x
  • Powershell确定永久移动(重定向)资源的新URL

    我在 Linux 上使用 AppImage 来使用 Powershell Core v6 beta 5 有没有办法找出 301 重定向的 新 位置 Invoke WebRequest Method HEAD http SomethingTh
  • Rails 3:生成唯一代码(优惠券)

    生成用作优惠券代码的唯一代码的最佳方法是什么 Thanks Ruby 的标准库中有SecureRandom为了这 SecureRandom hex 3 输出的长度是输入指定长度的两倍
  • Rails 3 有更好的 validates_linked 方法吗?

    Rails 3 包括validates associated保存嵌套模型时会自动调用它 该方法的问题是消息很糟糕 模型无效 有一些帖子针对 Rails 2 攻击了这个问题 http rpheath com posts 412 a bette
  • assembly x86 qemu:致命:尝试在 RAM 或 ROM 之外执行代码

    我正在开发一个非常基本的 shell 其中当前唯一的命令是 help 如果您输入错误 系统会通知您该命令无法识别 在段和堆栈设置的某个地方 我有一个错误 导致 shell 在我输入任何内容后吐出一些废话 然后完全冻结 我在终端中遇到错误 q
  • 如何在 RESTful Web 服务中实现登录?

    我正在构建一个带有服务层的 Web 应用程序 服务层将使用 RESTful 设计构建 我们的想法是 在未来的某个时候 我们可能会构建使用与 Web 应用程序相同的服务层的其他应用程序 iPhone Android 等 我的问题是 如何实现登
  • 为什么 MIDI 提供 127 个音符

    MIDI 中的 127 个音符值是否具有音乐意义 一定数量的八度音阶或其他 或者是由于二进制文件格式 IE为了计算的目的而设置为127 在 MIDI 协议中 有状态字节 想想命令 例如音符打开或音符关闭 和数据字节 想想参数 例如音高值和速
  • Groovy 字符串插值,其值仅在运行时已知

    我觉得我错过了 Groovy 处理字符串的方式 我意识到它们是不可变的 但我想做的是在运行时插入一个值 我不知道怎么办 让我用 Python 给出一个非常简单的例子 作为 可执行伪代码 来说明我的意思 然后我将给出我在 Groovy 中尝试
  • 在opencv python中分解单应性矩阵

    H K R t 其中H 3 3 是单应矩阵 R是旋转矩阵 K是相机内参数矩阵 t是平移向量 我使用棋盘模式计算了 K 如下所示 ret K dist rvecs tvecs cv2 calibrateCamera objpoints img