利用标定出的相机内外参实现-像素坐标系->相机坐标系->Base坐标系的转换

本文介绍如何利用opencv标定的相机内参和AX=XB求得的外参,进行从像素坐标到相机坐标再到Base坐标系的转换。详细步骤包括内参外参的获取和坐标转换代码实现。
摘要由CSDN通过智能技术生成

这里我们的内参是由opencv中相机标定API标定出的,外参用的是AX=XB计算出的,详细过程,请百度。
废话不多说,直接上代码。保存内外参的xml文件很简单,不解释了。代码里有注释。

#include <iostream>
#include <cmath>

// Eigen 部分
#include <Eigen/Core>
// 稠密矩阵的代数运算(逆,特征值等)
#include <Eigen/Dense>
//Eigen 几何模块
#include <Eigen/Geometry>

#include <opencv2/opencv.hpp>

/*
 * 相机坐标系转base坐标系
 * */

using namespace std;
using namespace Eigen;
using namespace cv;

// 内参文件路径
cv::String inCailFilePath="./assets/3DCameraInCailResult.xml";
// 外参文件路径
cv::String exCailFilePath="./assets/3DCameraExCailResult.xml";


/**
 * 将行列坐标,转成相机坐标系中的x,y,z
 * @param piexld 输入 {列, 行, 深度}
 * @param cameraPos 输出 {x,y,z}
 */
void piexl2camera(double *piexld,double *cameraPos){
    Mat cameraMatrix=cv::Mat_<double>(3, 3);;
    // 读取内参
    FileStorage paramFs("./assets/CameraInCailResult_VirtualCamera.yaml",FileStorage::READ);
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值