Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >解旋转矩阵求角

解旋转矩阵求角
EN

Stack Overflow用户
提问于 2014-02-04 22:16:31
回答 1查看 2.1K关注 0票数 2

我使用这个代码作为基础,在镜头中检测我的矩形目标,我使用ORB和Flann,我成功地使用findHomography()和perspectiveTransform()函数绘制了场景中检测到的目标的边框。

参考图像(上述代码中的img_object)是矩形target.Now的直视图像,我的场景图像中的目标可以向前或向后倾斜。我想找出它被倾斜的角度。我阅读了各种帖子,得出了findHomography()返回的同形可以分解为旋转矩阵和平移向量的结论。我使用了此链接推荐的https:/gist.github.com/inspirit/740979的代码,翻译为C++.This是从OpenCV的相机校准模块获得的张SVD分解代码,我从O‘’Reilly的学习OpenCV一书中得到了对这个分解代码的完整解释。

我还在匹配器返回的关键点上使用solvePnP()交叉检查旋转矩阵和从同形分解返回的平移向量,但它们似乎不相同。

我已经得到了所有场景图像倾斜度的测量结果,我找到了从旋转矩阵中提取角度的两种方法,以检查它们是否与我的值匹配。

  • 给定3×3旋转矩阵 R= r_{11} & r_{12} & r_{13} r_{31} & r_{32} & r_{33}

三个欧拉角是

theta_{x} = atan2(r_{32},r_{33})

theta_{y} = atan2(-r_{31},sqrt{r_{32}^2 + r_{33}^2})

theta_{z} = atan2(r_{21},r_{11})

  • 轴,角度表示-是一个一般的旋转矩阵,其对应的旋转轴u和旋转角θ可以从: cos(θ) =( trace(R)−1) /2 u×= (R−R⊤) /2 sin(θ)

我用这两种方法来计算旋转矩阵的角度,这两种方法都是从同形分解得到的,并且解p().All,角度是不同的,并且给出了非常意想不到的值。

在我的理解中有漏洞吗?我不知道我的计算在哪里,wrong.Are有什么可供选择的吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-06 07:33:03

你为什么指望他们是一样的?他们根本不是一回事。

欧拉角是从世界框架开始,一次旋转一个轴的三个角度。

罗德里格斯公式给出了世界框架中一个向量的分量,以及该向量的旋转角度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21569934

复制
相关文章
如何在Ubuntu上安装Buildbot
Buildbot是一个基于Python的持续集成系统,用于自动化软件构建,测试和发布。它使用Python的Twisted库来处理buildmaster和多个worker之间的异步通信,以便在多个平台上测试构建。Buildbot具有高度可配置性并且几乎可秒级应对构建过程,使其适用于复杂的构建过程或需要其工具随项目的独特需求而增长的项目。在本教程中,我们将在同一台机器上安装和配置Buildbot buildmaster和worker。
林岑影
2018/07/27
2.2K0
如何在Ubuntu上安装Docker?
Docker是一种流行的容器化平台,用于在不同的环境中快速部署和运行应用程序。它提供了一种轻量级和便捷的方式来封装、分发和管理应用程序及其依赖项。本文将详细介绍如何在Ubuntu上安装Docker,以便您能够开始使用Docker来构建和管理容器化的应用程序。
网络技术联盟站
2023/09/04
25.2K2
如何在Ubuntu上安装Docker?
如何在Ubuntu上安装Go
Go是由Google开发的编译的静态类型编程语言。许多现代应用程序,包括Docker,Kubernetes和Caddy,都是用Go编写的。本文将介绍如何在Ubuntu系统上安装GO语言开发运行环境。学习本文你需要一台已经设置好可以使用sudo命令的非root账号的服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费**的腾讯云开发者实验室进行试验,学会安装后在购买服务器。
何处惹尘埃
2018/08/17
1.7K0
如何在Ubuntu上安装Jenkins
Jenkins是一个开源自动化服务器,旨在自动执行持续集成和交付软件所涉及的重复技术任务。Jenkins是基于Java开发,可以从Ubuntu软件包安装,也可以使用ARchive(WAR)文件构成一个完整的Web应用程序,在服务器上运行。
宇cccc
2018/08/03
1.6K0
如何在Ubuntu上安装Jenkins
如何在Ubuntu上安装ionCube
ionCube是一个PHP模块扩展,可加载加密的PHP文件并加速网页。ionCube Encoder可以把PHP源代码转换成ByteCode。进行加密授权处理后的PHP代码就不在开源了,必须使用ionCube loader才可以执行加密过的PHP代码。PHP本身没有带有ionCube loader模块, 必须到ionCube网站下载。在本教程中,我们将在Ubuntu 16.04服务器上安装ionCube。
尘埃
2018/07/31
1.9K0
如何在Ubuntu上安装ionCube
如何在Ubuntu上安装ownCloud
ownCloud是一个自由且开源的个人云存储解决方案,包括两个部分:服务器和客户端。ownCloud 最早由KDE开发者Frank Karlitschek于2010年一月创建,目标是成为商业云服务提供商的替代。与商业云存储服务不同,ownCloud可以自由获取无需付费,但相应地,用户必须自行架设 ownCloud的服务器,这需要一点技术。在本教程中,我们将教你在Ubuntu 18.04服务器上安装和配置ownCloud服务器。
司徒永哥
2018/08/01
3.5K0
如何在Ubuntu上安装ownCloud
如何在Ubuntu上安装SELinux
Ubuntu有一个类似于SELinux的强制访问控制系统,名为AppArmor。SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。SELinux和AppArmor都提供了一组工具来隔离应用程序,以保护主机系统免受攻击。AppArmor为Ubuntu用户提供强制访问控制选项,没有SELinux可能遇到的困难或学习曲线效应。如果您想要切换到Ubuntu,已经熟悉SELinux并希望使用它来强制系统的安全性,您可以按照这个简短的教程安装它。
挺问中原
2018/08/16
12.5K2
如何在Ubuntu上安装MutliCraft
PS:本文撰写前已查询相关法律,本文内容不违反《互联网文化管理暂行规定》,遵守EULA协议,请勿举报。
宇cccc
2018/08/14
3K0
如何在Ubuntu上安装MutliCraft
如何在Ubuntu上安装MySQL/MariaDB
本教程面向Ubuntu服务器,适用于Ubuntu的任何LTS版本,包括Ubuntu 14.04,Ubuntu 16.04,Ubuntu 18.04,甚至非LTS版本(如Ubuntu 17.10和其他基于Ubuntu的发行版)。我们在Ubuntu 16.04服务器上测试了这个。
星哥玩云
2022/08/16
1.9K0
如何在Ubuntu 16.04上安装MongoDB
MongoDB是一个免费的开源NoSQL文档数据库,在现代Web应用程序中常用。本教程将帮助您在服务器上为生产应用程序环境设置MongoDB。
何处惹尘埃
2018/10/11
1.7K0
如何在 Ubuntu 20.04 上安装 MySQL
https://www.itcoder.tech/posts/how-to-install-mysql-on-ubuntu-20-04/
雪梦科技
2020/04/29
6.6K0
如何在 Ubuntu 20.04 上安装 MySQL
如何在 Ubuntu 20.04 上安装 Vagrant
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-vagrant-on-ubuntu-20-04/
雪梦科技
2020/06/04
1.4K0
如何在 Ubuntu 20.04 上安装 Vagrant
如何在 Ubuntu 20.04 上安装 MariaDB
本文最先发布在:https://www.itcoder.tech/posts/how-to-install-mariadb-on-ubuntu-20-04/
雪梦科技
2020/05/22
3.7K0
如何在 Ubuntu 20.04 上安装 MariaDB
如何在 Ubuntu 20.04 上安装 Elasticsearch
Elasticsearch 是一个开源全文搜索和分析引擎。它支持 RESTful 操作,并且允许你存储,搜索,并且实时分析大量的数据。Elasticsearch是最流行的搜索引擎之一,可为具有复杂搜索要求的应用程序提供动力,例如大型电子商务商店和分析应用程序。
雪梦科技
2020/07/08
9.9K3
如何在 Ubuntu 20.04 上安装 TeamViewer
TeamViewer 是一个跨平台解决方案,它可以被用来进行远程控制,桌面共享,在线会议,以及计算机之间的文件传输。
雪梦科技
2020/06/30
5.8K0
如何在 Ubuntu 20.04 上安装 TeamViewer
如何在Ubuntu 18.04上安装Jenkins
Jenkins是一个开源自动化服务器,可以自动执行持续集成和交付软件所涉及的重复技术任务。Jenkins是基于Java的,可以从Ubuntu软件包安装,也可以通过下载和运行其Web应用程序存档(WAR)文件来安装 - 该文件是构成在服务器上运行的完整Web应用程序的文件集合。
吴凌云
2018/10/09
4.7K0
如何在Ubuntu 14.10 上安装WordPress?
WordPress 是一种使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站。也可以把  WordPress 当作一个内容管理系统( CMS )来使用。
星哥玩云
2022/07/04
5620
如何在Ubuntu 14.10 上安装WordPress?
如何在Ubuntu 16.04上安装Nginx
Nginx是世界上最受欢迎的网络服务器之一,负责托管互联网上一些规模最大,流量最高的网站。在大多数情况下,它比Apache更加资源友好,可以用作Web服务器或反向代理。
小皇帝James
2018/10/11
2.4K0
如何在 Ubuntu 20.04 上安装 Git
Git 是世界上最流行的分布式版本控制系统,它被众多的开源和商业项目所采用。它允许你和你的开发同事进行分工合作,跟踪你的代码变化,恢复前一个暂存区,创建分支等等。
雪梦科技
2020/05/11
8840
如何在 Ubuntu 20.04 上安装 Nginx
Nginx 发音 “engine x” ,是一个开源软件,高性能 HTTP 和反向代理服务器,用来在互联网上处理一些大型网站。它可以被用作独立网站服务器,负载均衡,内容缓存和针对 HTTP 和非 HTTP 的反向代理服务器。
雪梦科技
2020/05/11
2.1K0

相似问题

PHP:将特定的csv行读取到二维数组中

30

将文件读取到特定行php

30

PHP将txt从特定行读取到末尾。

24

将CSV中的特定列读取到阵列

31

特定CSV读滤波

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文