区块链系统开发(讲解)

简介: 区块链系统开发(讲解)

  首先工具函数:将cv的旋转矢量与位移矢量转换为变换矩阵,类型为Eigen::Isometry3d;

  src/slamBase.cpp

复制代码
1 // cvMat2Eigen
2 Eigen::Isometry3d cvMat2Eigen( cv::Mat& rvec, cv::Mat& tvec )
3 {
4 cv::Mat R;
5 cv::Rodrigues( rvec, R );
6 Eigen::Matrix3d r;
7 cv::cv2eigen(R, r);
8
9 // 将平移向量和旋转矩阵转换成变换矩阵
10 Eigen::Isometry3d T = Eigen::Isometry3d::Identity();
11
12 Eigen::AngleAxisd angle(r);
13 Eigen::Translation<double,3> trans(tvec.at(0,0), tvec.at(0,1), tvec.at(0,2));
14 T = angle;
15 T(0,3) = tvec.at(0,0);
16 T(1,3) = tvec.at(0,1);
17 T(2,3) = tvec.at(0,2);
18 return T;
19 }
复制代码
  另一个函数:将新的帧合并到旧的点云里:

复制代码
1 // joinPointCloud
2 // 输入:原始点云,新来的帧以及它的位姿
3 // 输出:将新来帧加到原始帧后的图像
4 PointCloud::Ptr joinPointCloud( PointCloud::Ptr original, FRAME& newFrame, Eigen::Isometry3d T, CAMERA_INTRINSIC_PARAMETERS& camera )
5 {
6 PointCloud::Ptr newCloud = image2PointCloud( newFrame.rgb, newFrame.depth, camera );
7
8 // 合并点云
9 PointCloud::Ptr output (new PointCloud());
10 pcl::transformPointCloud( original, output, T.matrix() );
11 newCloud += output;
12
13 // Voxel grid 滤波降采样
14 static pcl::VoxelGrid voxel;
15 static ParameterReader pd;
16 double gridsize = atof( pd.getData("voxel_grid").c_str() );
17 voxel.setLeafSize( gridsize, gridsize, gridsize );
18 voxel.setInputCloud( newCloud );
19 PointCloud::Ptr tmp( new PointCloud() );
20 voxel.filter( *tmp );
21 return tmp;
22 }
复制代码
  另外,在parameters.txt中,我们增加了几个参数,以便调节程序的性能:

复制代码

part 5

数据相关

起始与终止索引

start_index=1
end_index=700

数据所在目录

rgb_dir=../data/rgb_png/
rgb_extension=.png
depth_dir=../data/depth_png/
depth_extension=.png

点云分辨率

voxel_grid=0.02

是否实时可视化

visualize_pointcloud=yes

最小匹配数量

min_good_match=10

最小内点

min_inliers=5

最大运动误差

max_norm=0.3

相关文章
|
9月前
|
区块链 安全 开发者
DAPP开发|IPPSwap去中心化智能合约系统开发
区块链的网络是一个由众多节点组成的分布式系统,每个节点都具有高度自治的特征
|
6月前
|
存储 安全 区块链
DAPP互助公排智能合约系统开发方案与需求
智能合约是需要区块链开发者用区块链编程语言写出来的一串代码,根据不同场景构思逻辑后开发出来的信任机制
|
8月前
|
安全 数据处理 区块链
Arbitrum公链系统开发|Arbitrum公链质押合约项目系统开发(成熟技术)
智能合约具有高度的可编程性,这使其可以执行任何类型的计算操作
|
8月前
|
算法 区块链 数据安全/隐私保护
区块链去中心化交易所系统开发成熟技术|开发指南与流程
Web3算法革命将会在多个领域产生深远的影响。首先,它将会对数据安全和隐私保护产生积极的作用
|
9月前
|
算法 安全 区块链
如何从事区块链开发?
@[TOC](目录) 从事区块链开发是一个广泛的领域,涉及到多个技术和概念。以下是一个详细的指南,将帮助你了解如何开始从事区块链开发,并提供一系列步骤和资源来支持你的学习和实践。 # 第一部分:区块链基础知识 1. 什么是区块链? - 区块链的定义和核心原理 - 区块链的类型和应用领域 - 区块链的优势和挑战 2. 区块链的关键概念 - 分布式账本和区块 - 共识算法和挖矿 - 哈希函数和密码学基础 - 智能合约和去中心化应用(DApps) # 第二部分:准备工作和环境设置 1. 选择适合的编程语言 - Solidity:用于以太坊的智能
240 0
|
9月前
|
存储 安全 JavaScript
DAPP系统开发|NFT智能合约链游系统开发(成熟技术)
智能合约在达成协议时可消除对中间方的依赖
|
10月前
|
存储 算法 区块链
GRETT格莱特智能合约系统开发|格莱特质押模式系统开发DAPP技术搭建
“去中心化”是区块链的典型特征之一 The liquidity providers provide the pool with the two
|
安全 算法 区块链
区块链金融交易借贷平台开发技术实现去中心化
传统的金融交易清算周期长和成本高昂,引入区块链技术,能够加快传统金融交易中心化的交易缓慢和低效的后端运作,并且重塑交易和结算流程。一个共享的数字公开账本能够持续被维护,确认所有参与链上的交易,防止欺诈,对全球金融交易、清算和结算带来了一个重大的改观机会。
|
Java 区块链 C++
去中心化交易所开发运营版丨去中心化交易所系统开发(成熟及技术)丨去中心化交易所系统源码详细
  智能合约是对协议的翻译,区块链开发者用JAVA、C++和其他编程语言编写脚本,不会引起歧义或误解。这段代码翻译了一组自动执行和验证的规则。
|
安全 区块链
区块链DEFI质押项目系统开发丨土狗币智能合约系统开发技术方案
区块链DEFI质押项目系统开发丨土狗币智能合约系统开发技术方案
165 0