我正在开发Android AR应用程序 . 我正在使用RAJAWALI库进行AR渲染,使用openCV进行目标检测和跟踪 . 我正在使用opencv的PNPRansac函数计算旋转和平移矩阵 .

cv::Mat rotation=cv::Mat::zeros(3, 1, CV_64FC1);

cv::Mat translation=cv::Mat::zeros(3, 1, CV_64FC1);

TranslationMatrix=cv::Mat::zeros(3, 1, CV_64FC1);

RotationMatrix=cv::Mat::zeros(3, 3, CV_64FC1);

if (!cv::solvePnPRansac(objectPoints_float,

scenePoints_float,

cameraParams.cameraMatrix,

cameraParams.distortionMatrix,

rotation,

translation,

false,

iterationsCount,

cameraParams.reprojectionError,

confidence)) {

rotation.release();

translation.release();

return;

}

TranslationMatrix = translation;

cv::Rodrigues(rotation,

RotationMatrix); // converts Rotation Vector to Matrix

cv::Mat R_t, A;

R_t = cv::Mat::zeros(3, 3, CV_64FC1);

A = cv::Mat::zeros(3, 1, CV_64FC1);

A.at(0, 0) = 0;//[0]

A.at(1, 0) = 0;//[0]

A.at(2, 0) = 1;//[1]

//transpose of rotation matrix

R_t = RotationMatrix.t();

// Reference for this formula https://en.wikipedia.org/wiki/Camera_resectioning

cameraPosition = -1 * (R_t * TranslationMatrix);

//CameraOrientation = R_t * A;

//CameraOrientation = rot2euler(RotationMatrix).clone();

我正试图通过这个旋转和位置到Rajawali相机,以实现AR体验 . 该位置似乎是正确的,但未正确设置旋转 . 我在Rajawali场景的_543511中有这个:

// Get camera position and rotation from C++ to Java using native method

getCameraPositionRotation(cameraPosition.getNativeObjAddr(), cameraOrientation.getNativeObjAddr());

double POSx = cameraPosition.get(0, 0)[0] / 1000;

double POSy = cameraPosition.get(1, 0)[0] / 1000;

double POSz = cameraPosition.get(2, 0)[0] / 1000;

double ROTx = Math.toDegrees(cameraOrientation.get(0, 0)[0]);

double ROTy = Math.toDegrees(cameraOrientation.get(1, 0)[0]);

double ROTz = Math.toDegrees(cameraOrientation.get(2, 0)[0]);

getCurrentCamera().setPosition(POSx, POSy, POSz);

getCurrentCamera().setRotation(ROTx,ROTy,ROTz);

如何正确设置Rajawali相机的旋转?

java opencv 平移_如何使用opencv pnpRansac()函数中的平移矩阵和旋转矩阵设置Rajawali相机的旋转?...相关推荐

  1. opencv3 java开发手册_介绍一本opencv不错的书-OpenCV3使用Java开发手册

    你们好 http://www.topteam.cc/02-shop-detail.php?cid=&sid=&pid=896 Opencv 不但有趣并且是免费的视觉相关开发软体,它可以 ...

  2. opencv 画矩形_图像处理之OpenCV的基础使用补充

    基础到进阶,跨度有点大,我们还是先踏实基础吧.对图像的处理实际上还是对图像像素矩阵的处理,当然还需要点想象空间.上一篇文章我们介绍了opencv的最基本用法,能够实现图片的加载.生成.读取像素矩阵.三 ...

  3. python opencv直方图_【python opencv】直方图均衡

    搜索热词 考虑这样一个图像,它的像素值仅局限于某个特定的值范围.例如,较亮的图像将把所有像素限制在高值上.但是一幅好的图像会有来自图像所有区域的像素.因此,您需要将这个直方图拉伸到两端(如下图所示,来 ...

  4. python opencv 直方图均衡_深入理解OpenCV+Python直方图均衡化

    原标题:深入理解OpenCV+Python直方图均衡化 正文 直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法. 基本思想:把原始图的直方图变换为均匀分 布的形式,这样就增加了像素灰度 ...

  5. python opencv 三维重建_【python+opencv实现基于图片序列的三维重建】 - #1

    2015年09月05 - 三维重建一直是机器视觉研究的热门方向,比如,基于双目视觉,单目视觉,多视几何,光场三维重建等等. 每一种方法都有其有点和局限性.单目视觉需要拍摄多幅图像,并且在拍摄过程中需要 ...

  6. mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.下面向大家介绍Mac电脑上如何配置Java ...

  7. 抽取样本java实验报告_一个自定义classloader的函数抽取壳样本

    原标题:一个自定义classloader的函数抽取壳样本 本文为看雪论坛文章 看雪论坛作者ID:lemn 本文为 看雪安卓高研2w班(7月班)优秀学员作品. 下面先让我们来看看学员的学习心得吧! 学员 ...

  8. java input属性_如何在h:inputText中指定命令属性?

    我有一个函数,我在我的经理中derclare bean,我想在inputText中返回值,但是当我将函数的名称放在inputText标记的value属性中时,如下所示: 出现此错误: Etat HTT ...

  9. java绘制流程图_如何才能更好地绘制计算机毕业设计中各种图表

    " 毕设论文中的各种图表是不可或缺的,如果只是单纯的文字,或者图表较少,达不到要求的话,最终是通过不了答辩审核的!" 目前绘制图表的软件很多,比如VISIO等,切记尽量不要使用wo ...

最新文章

  1. 哪家中国公司为Java 16贡献最多?Java第一大厂居然不是第一的...
  2. gcc/g++命令参数笔记
  3. 搭建iscsi存储系统
  4. ML 自学者周刊:第 1 期
  5. Python基础day09【面向对象(封装、继承、多态)、重写、私有权限】
  6. 算法图解学习笔记01:二分查找大O表示法
  7. mysql 聚合函数 怎么用在条件里_MySql 中聚合函数增加条件表达式的方法
  8. lcd4linux 1602,详解一种LCD1602 的4线接法
  9. Golang基本变量
  10. php小程序的wxparse.js是什么,微信小程序如何解析HTML富文本(使用wxParse解析富文本的demo)...
  11. extjs2.0 ie8 下拉树_extjs2下拉树选项框comboxWithTree(支持异步加载子节点)
  12. 利用openssl进行base64的编码与解码
  13. [Mac OS] Homebrew简介及安装wine
  14. 单片机一键开关机硬件电路
  15. 用Java输出高频词_编程高阶用法--开发者高频词汇
  16. 基于Rust-vmm实现Kubernetes运行时
  17. Fluent Mybatis 牛逼!
  18. linux 主流浏览器,各主流浏览器(PC、移动端)userAgent属性信息介绍
  19. 【按键精灵源码】一个稍微复杂点的脚本界面
  20. RK3588平台开发系列讲解(进程篇)进程的简介

热门文章

  1. java统计_java统计当前在线数
  2. php当前栏目位置,thinkphp获取栏目和文章当前位置的方法,_PHP教程
  3. 瞬间教你学会使用java中list的retainAll方法
  4. php带参数单元测试_一文搞定单元测试核心概念
  5. Mysql之alter用法汇总
  6. linux上进程状态查询
  7. java 取pdf表格内容数据_Java 在PDF中添加表格
  8. 冒泡排序出现的问题_停课不停学 | 有趣的算法——冒泡排序
  9. 多元统计第二章证明题_2020年中南大学应用统计硕士考研成功经验分享
  10. linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决