ArUco使用

PnP

【OpenCV/aruco】校准相机(Camera Calibration) Demo

--------------------------------------------------------------------------------------------------------------------------------

使用opencv的aruco库进行位姿估计

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <cv.h>
#include <iostream>
#include <highgui.h>
#include <opencv2/aruco.hpp>
#include <stdio.h>using namespace cv;
using namespace std;int main(int argc, char *argv[]){
//内参与畸变矩阵,笔者在前面的博客已经给出求解方法,有需要的可以找找看看double fx,fy,cx,cy,k1,k2,k3,p1,p2;fx=955.8925;fy=955.4439;cx=296.9006;cy=215.9074;k1=-0.1523;k2=0.7722;k3=0;p1=0;p2=0;Mat cameraMatrix = (cv::Mat_<float>(3, 3) <<fx, 0.0, cx,0.0, fy, cy,0.0, 0.0, 1.0);Mat distCoeffs = (cv::Mat_<float>(5, 1) << k1, k2, p1, p2, k3);cv::VideoCapture inputVideo;inputVideo.open(0);cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(cv::aruco::DICT_6X6_250);while (inputVideo.grab()) {cv::Mat image, imageCopy;inputVideo.retrieve(image);//抓取视频中的一张照片image.copyTo(imageCopy);std::vector<int> ids;std::vector<std::vector<cv::Point2f>> corners;cv::aruco::detectMarkers(image, dictionary, corners, ids);//检测靶标// if at least one marker detectedif (ids.size() > 0) {cv::aruco::drawDetectedMarkers(imageCopy, corners, ids);//绘制检测到的靶标的框std::vector<cv::Vec3d> rvecs, tvecs;cv::aruco::estimatePoseSingleMarkers(corners, 0.055, cameraMatrix, distCoeffs, rvecs, tvecs);//求解旋转矩阵rvecs和平移矩阵tvecs//cout<<"R :"<<rvecs[0]<<endl;cout<<"T :"<<tvecs[0]<<endl;// draw axis for each markerfor(int i=0; i<ids.size(); i++)cv::aruco::drawAxis(imageCopy, cameraMatrix, distCoeffs, rvecs[i], tvecs[i], 0.1);}cv::imshow("out", imageCopy);cv::waitKey(50);//if (key == 27)1// break;}
return 0;
}

--------------------------------------------------------------------------------------------------------------------------------

三维坐标变换——旋转矩阵与旋转向量互转

Dlib姿态估计——旋转矩阵与欧拉角互转

ArUco估计位姿原理相关推荐

  1. 再次思考矩估计与似然估计的原理

    再次思考矩估计与似然估计的原理 @(概率论) 首先需要特别强调,矩估计和似然估计都是点估计的具体策略.而点估计强调的是由样本构建一个统计量作为未知参数的估计量.代入具体的观察值就是估计值. 而通常采用 ...

  2. 使用C++ OpenCV实现椭圆区域检测与Aruco码的生成与检测并估计位姿

    前景概要 很多机器视觉的定位与识别场景,如无人车.无人机,都会用Aruco码或特定的标志物来实现,Aruco码的优点在于,xxxx(自行搜索). 对于像在低成本轻量级的无人机这种嵌入式系统上,搭载深度 ...

  3. 6D 位姿估计 位姿测量 常用方法总结 (适用于单目标场景)

    在机器人的应用中,往往会涉及到基于视觉的 6D 位姿估计或者位姿测量的问题,现在 Pose Estimation 的论文现在非常多,也有很大的创新,不过目前SOTA的工作一般面向几个特定的数据集,比如 ...

  4. 深度估计相关原理(计算机视觉和深度学习基础)

    今天来和大家介绍一下深度估计涉及到的理论知识点,包括计算机视觉基础和深度学习基础. 一.计算机视觉基础 1.1. 针孔相机模型 相机模型,是指采用一个几何模型来描述三维世界中的坐标点映射到二维图像平面 ...

  5. Opencv外参估计cvFindExtrinsicCameraParams2原理解析(四)

    背景介绍 在之前的博文中,已经在外参估计函数cvFindExtrinsicCameraParams2分别进行了单应性方法.DLT方法,单应性矩阵进一步估计旋转平移量做了原理解析.本文对opencv在估 ...

  6. 反光板导航SLAM(四)如何通过两个反光柱估计位姿

    通常而言确定空间中的一个点的坐标需要三个点,也就是俗称的三点定位.但是在某些时候,场景内可能不一定能够采样到足够多的反光柱,比如只有两个.这个时候看起来似乎参数是不足的,毕竟机器人的参数有三个,两个方 ...

  7. 【CV】相对位姿估计的进展和新方法

    文稿整理者:小萝卜 审稿&修改:赵季博士 本文总结自12月4日赵季博士关于[相对位姿估计的进展和新方法]公开课. 位姿估计是多视图几何的重要方向.赵博士在公开课第一部分首先概述了位姿估计的背景 ...

  8. 多视图几何 | 相对位姿估计的经典回顾和最新进展!

    编辑 | 深蓝AI 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[全栈算法]技术交流群 后台回复[相机标定]获取超详细的单目双目相机 ...

  9. CVPR 2021 | 国防科大:基于几何稳定性分析的物体位姿估计方法

    作者|机器之心编辑部 来源|机器之心 物体 6D 姿态估计是机器人抓取.虚拟现实等任务中的核心研究问题.近些年来,随着深度学习技术和图像卷积神经网络的快速发展,在提取物体的几何特征方面出现了许多需要改 ...

最新文章

  1. 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化
  2. h5ai搭建自己的文件分享程序
  3. css设置文本自动换行
  4. VC的MFC中重绘函数的使用总结(整理)
  5. 深度学习导论(6)误差计算
  6. finally语句与return语句的执行顺序
  7. ubantu中rpm转换成deb(软件包格式)
  8. iOS开发拓展篇—蓝牙之mutipeerConnectivity的使用
  9. 1844. 将所有数字用字符替换
  10. ubuntu14在kDE界面下的关于eclipse提示框黑色背景的修改!
  11. keil安装及mdk
  12. iOS 获取APP名称 版本等
  13. cmd文件和bat文件的区别+一个的bat脚本+bat基础知识
  14. 月薪11970元的网络运维工程师需要掌握哪些必备技能?
  15. html中设置表格标题的代码,设置表格标题的html代码是什么_WEB前端开发
  16. 三分钟教会你微信炸一炸,满屏粑粑也太可爱了!
  17. nload0.7.2编译及使用说明
  18. 说说Teams里的Card
  19. 电容、频率之间的关系
  20. 【整理】扩频及CDMA知识点

热门文章

  1. 复制文件以及异常处理
  2. 496.下一个更大元素I
  3. P1223 排队接水
  4. mysql通用分页_MySQL海量数据的通用存储过程分页代码
  5. 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )
  6. 如何组织成功的bug bash--摘录
  7. 如何通过 Vue+Webpack 来做通用的前端组件化架构设计
  8. python设计模式(十三):解释器模式
  9. 如何优雅地在 Java 8 中处理异常
  10. 用oracle存储过程取一张表里的数据放入其他表 游标取值