区块链系统开发(讲解)

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

  首先工具函数:将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

相关文章
|
6月前
|
安全 区块链
区块链积分商城系统开发详细指南//需求功能/指南教程/源码流程
Developing a blockchain points mall system involves multiple aspects such as blockchain technology, smart contracts, front-end development, and business logic design. The following is the general process for developing a blockchain points mall system
|
6月前
|
安全 JavaScript 前端开发
区块链钱包系统开发解决方案/需求设计/功能逻辑/案例详细/源码步骤
The development of a blockchain wallet system involves multiple aspects, and the following is the detailed logic for developing a blockchain wallet system:
|
6月前
|
数据采集 监控 算法
区块链量化交易系统开发策略详细丨需求步骤丨案例设计丨规则玩法丨成熟源码
策略:建立数据采集系统,获取各种市场数据,包括交易数据、新闻情报、社交媒体消息等。
|
6月前
|
安全 区块链
区块链农场游戏系统开发运营版/玩法详情/规则方案/案例设计/项目源码
Developing a blockchain farm game system is an interesting and challenging task. Here is a design solution that can help you get started developing such a system
|
4月前
|
存储 安全 前端开发
区块链 DAPP 互助逻辑模式系统开发技术方案[源码示例]
Dapp(Decentralized Application)是指不受任何中心化组织或机构控制的、使用特定区块链技术为基础的去中心化应用程序。Dapp 是一种特殊类型的应用,它可以在任何基于区块链技术的系统,例如 Ethereum、EOS 或其他的智能合约系统上运行。
|
4月前
|
存储 安全 区块链
SWAP交易所系统开发|区块链交易所系统开发方案
尽管Web3.0的前景仍然不确定,但像尤派数字传媒这样的先行者正在积极尝试元宇宙,并加速转型的步伐。在面对即将到来的新一代互联网时,尤派数字传媒既不会过于骄傲自大,也不会过于谨小慎微。唯有在当前基础上稳步推进,夯实基础,才能在不确定的环境中获得最大的确定性。
|
4月前
|
安全 编译器 区块链
区块链代币 DAPP 通缩燃烧模式系统开发技术方案
合约代码部署流程可能因区块链技术的不同实现而略有不同,但基本步骤如下:
|
6月前
|
存储 算法 安全
区块链系统开发技术规则分析
区块链核心技术包括:1) 哈希算法,利用单向函数将任意数据转化为固定长度代码,确保安全验证;2) 非对称加密,使用公钥和私钥一对进行加密解密,保证信息安全;3) 共识机制,如PoW、PoS、DPoS等,实现快速交易验证和确认;4) 智能合约,自动执行的可信代码,一旦编写即不可更改,用于自动化交易;5) 分布式存储,将数据分散存储在网络各处,涵盖结构化、非结构化和半结构化数据。
|
6月前
|
安全 算法 区块链
区块链系统开发|(成熟技术)/区块链系统开发介绍方案
区块链架构自下而上包括数据层、网络层、共识层、激励层、契约层和应用层。数据层涉及底层区块和基础数据;网络层实现节点间的分布式通信;共识层确保去中心化网络中节点对区块有效性的共识;激励层提供参与区块链安全验证的节点奖励;契约层支持智能合约,实现交易模式的编程;应用层则将区块链技术应用于现实生活场景。激励层、契约层和应用层并非所有区块链应用的必要组成部分。
|
6月前
|
测试技术 区块链
swap开发/区块链跨链技术系统开发规则
跨链技术通过验证源链状态和中继交易至目标链实现交互,关键组件是跨链桥,用于通证在不同链间的转移。桥通过智能合约锁定/销毁源链通证并在目标链解锁/铸造。简单的跨链桥仅适用于通证传输,而可编程通证桥支持更复杂交互,如交易中的交换、借贷等。任意数据消息传递协议则提供更通用功能,能构建跨链DApp,如跨链DEX、NFT和游戏。
下一篇
无影云桌面