BSC币安链智能合约系统开发搭建技术(参照)

简介: BSC币安链智能合约系统开发搭建技术(参照)

Asch中有三种类型的网络:localnet、testnet和mainnet。最后两个是在线发布的,可以通过公共网络访问。第一种localnet在本地运行,只有一个节点的私有链,主要是为了方便本地测试和开发。Dapp的开发还涉及这三个网络,即

步骤1:在localnet中本地开发和测试

步骤2:在testnet上测试

第三步:正式发布到mainnet

// 各种头文件
11 // C++标准库
12 #include
13 #include
14 using namespace std;
15
16 // OpenCV
17 #include <opencv2/core/core.hpp>
18 #include <opencv2/highgui/highgui.hpp>
19
20 //PCL
21 #include <pcl/io/pcd_io.h>
22 #include <pcl/point_types.h>
23
24 // 类型定义
25 typedef pcl::PointXYZRGBA PointT;
26 typedef pcl::PointCloud PointCloud;
27
28 // 相机内参结构
29 struct CAMERA_INTRINSIC_PARAMETERS
30 {
31 double cx, cy, fx, fy, scale;
32 };
33
34 // 函数接口
35 // image2PonitCloud 将rgb图转换为点云
36 PointCloud::Ptr image2PointCloud( cv::Mat& rgb, cv::Mat& depth, CAMERA_INTRINSIC_PARAMETERS& camera );
37
38 // point2dTo3d 将单个点从图像坐标转换为空间坐标
39 // input: 3维点Point3f (u,v,d)
40 cv::Point3f point2dTo3d( cv::Point3f& point, CAMERA_INTRINSIC_PARAMETERS& camera );
复制
  可以看到,我们把相机参数封装成了一个结构体,另外还声明了 image2PointCloud 和 point2dTo3d 两个函数。然后,在 src/ 目录下新建 slamBase.cpp 文件:

  src/slamBase.cpp

1 /*
2 > File Name: src/slamBase.cpp
3 > Author: xiang gao
4 > Mail: gaoxiang12@mails.tsinghua.edu.cn
5 > Implementation of slamBase.h
6 > Created Time: 2015年07月18日 星期六 15时31分49秒
7 **/
8
9 #include "slamBase.h"
10
11 PointCloud::Ptr image2PointCloud( cv::Mat& rgb, cv::Mat& depth, CAMERA_INTRINSIC_PARAMETERS& camera )
12 {
13 PointCloud::Ptr cloud ( new PointCloud );
14
15 for (int m = 0; m < depth.rows; m++)
16 for (int n=0; n < depth.cols; n++)
17 {
18 // 获取深度图中(m,n)处的值
19 ushort d = depth.ptr(m)[n];
20 // d 可能没有值,若如此,跳过此点
21 if (d == 0)
22 continue;
23 // d 存在值,则向点云增加一个点
24 PointT p;
25
26 // 计算这个点的空间坐标
27 p.z = double(d) / camera.scale;
28 p.x = (n - camera.cx) * p.z / camera.fx;
29 p.y = (m - camera.cy) * p.z / camera.fy;
30
31 // 从rgb图像中获取它的颜色
32 // rgb是三通道的BGR格式图,所以按下面的顺序获取颜色
33 p.b = rgb.ptr(m)[n*3];
34 p.g = rgb.ptr(m)[n*3+1];
35 p.r = rgb.ptr(m)[n*3+2];
36
37 // 把p加入到点云中
38 cloud->points.push_back( p );
39 }
40 // 设置并保存点云
41 cloud->height = 1;
42 cloud->width = cloud->points.size();
43 cloud->is_dense = false;
44
45 return cloud;
46 }
47
48 cv::Point3f point2dTo3d( cv::Point3f& point, CAMERA_INTRINSIC_PARAMETERS& camera )
49 {
50 cv::Point3f p; // 3D 点
51 p.z = double( point.z ) / camera.scale;
52 p.x = ( point.x - camera.cx) * p.z / camera.fx;
53 p.y = ( point.y - camera.cy) * p.z / camera.fy;
54 return p;
55 }

相关文章
|
2月前
|
安全 API 区块链
BRC20铭文智能合约跨链系统开发/详细技术/案例项目/需求说明/源码步骤
BRC20铭文跨链系统可以允许使用BRC20铭文代币来进行跨链交易。
|
2月前
|
安全 区块链
BRC20铭文智能合约跨链系统开发详情版/需求设计/案例逻辑/指南教程/源码部署
In the development process of the BRC20 Inscription Smart Contract Cross Chain System, t
|
10月前
|
安全
DApp合约众筹矩阵互助系统开发案例详情丨DApp矩阵互助众筹合约系统开发步骤方案/设计需求/功能开发/项目程序/源码逻辑
The DApp Crowdfunding Matrix Mutual Assistance Contract System is a decentralized application (DApp) system based on blockchain technology, aimed at achieving crowdfunding and mutual assistance operations between users
|
11月前
|
开发框架 前端开发 区块链
(bsc)币安链上合约DAPP项目源码开发解决方案
function transferAsset(address receiver, uint256 amount) public returns (bool success) { // 检查资产数量是否足够 if (assetValue &lt; amount) { return false;
|
11月前
|
区块链
|
12月前
|
前端开发 安全 Java
BSC链DAPP智能合约NFTswap/IPPswap/Defiswap/OMNIswap系统开发(开发方案)/项目程序/案例源码
  什么是智能合约DApp   智能合约DApp是计算机程序,通过它,交易双方可以共同完成交易。如果在执行过程中发生了一系列变化,那么智能合约将会记录这些变化并自动执行这些变化。
|
12月前
|
存储 开发框架 前端开发
BSC链Defiswap丨IPPswap丨NFTswap丨OMNIswap智能合约去中心化项目系统开发成熟技术/项目案例/源码说明
  区块链是一个分布式账本,使用密码学原理来记录数据,并且按照时间顺序进行记录。在区块链中,数据可以进行高度地分散,因为数据分布在不同的节点上。当一个区块链被添加到一个新的区块上时,它将包含以前的所有交易记录。
|
12月前
|
存储 人工智能 供应链
BSC币安智能链DAPP发行代币合约模式系统开发成熟技术/案例介绍/方案项目/源码平台
  区块链+人工智能的结合可以实现更加智能化和自动化的操作方式,使得操作更加简单、高效和安全。例如,在智能合约中,人工智能可以自动检测合约中的条件并执行相应的操作,大大减少了人工干预的需求
|
12月前
|
存储 前端开发 安全
BSC币安链DAPP代币发行合约项目系统开发(开发案例)及源码平台
  DAPP的底层存储和运行依赖于区块链技术。在DAPP的开发中,我们可以使用现有的公链,例如以太坊、EOS、TRON等,或者自建私有链来支持DAPP的运行。
|
前端开发 JavaScript Java
马蹄链DAPP合约项目系统开发技术方案丨(源码搭建)
马蹄链DAPP合约项目系统开发技术方案丨(源码搭建)