马蹄链合约DAPP项目系统开发分析方案(成熟理念)

2022-10-28 09:41:55 浏览数 (1)

DAPP是分散应用的缩写,也是分散应用。

在某种程度上,比特币可以说是第一个出现的DAPP,因为它完全开源,为贡献者提供奖励,不受中央机构控制,并使用区块链作为支持技术。

作为一种基础设施,区块链提供了一个分布式和分散的可信数据库。基于此,人们可以针对不同的场景开发各种应用程序。

简单地说,DApp和普通应用程序具有相同的原理,但它们是完全分散的。与以太坊网络本身一样,DAPP由自己的节点操作,不依赖任何集中式服务器。DAPP是分散的,可以自动运行。

目前,DApp通常是指基于智能合约在以太坊或EOS上开发的相关应用程序。

代码语言:javascript复制
 1 // 计算图像间的运动关系
 2     // 关键函数:cv::solvePnPRansac()
 3     // 为调用此函数准备必要的参数
 4     
 5     // 第一个帧的三维点
 6     vector<cv::Point3f> pts_obj;
 7     // 第二个帧的图像点
 8     vector< cv::Point2f > pts_img;
 9 
10     // 相机内参
11     CAMERA_INTRINSIC_PARAMETERS C;
12     C.cx = 325.5;
13     C.cy = 253.5;
14     C.fx = 518.0;
15     C.fy = 519.0;
16     C.scale = 1000.0;
17 
18     for (size_t i=0; i<goodMatches.size(); i  )
19     {
20         // query 是第一个, train 是第二个
21         cv::Point2f p = kp1[goodMatches[i].queryIdx].pt;
22         // 获取d是要小心!x是向右的,y是向下的,所以y才是行,x是列!
23         ushort d = depth1.ptr<ushort>( int(p.y) )[ int(p.x) ];
24         if (d == 0)
25             continue;
26         pts_img.push_back( cv::Point2f( kp2[goodMatches[i].trainIdx].pt ) );
27 
28         // 将(u,v,d)转成(x,y,z)
29         cv::Point3f pt ( p.x, p.y, d );
30         cv::Point3f pd = point2dTo3d( pt, C );
31         pts_obj.push_back( pd );
32     }
33 
34     double camera_matrix_data[3][3] = {
35         {C.fx, 0, C.cx},
36         {0, C.fy, C.cy},
37         {0, 0, 1}
38     };
39 
40     // 构建相机矩阵
41     cv::Mat cameraMatrix( 3, 3, CV_64F, camera_matrix_data );
42     cv::Mat rvec, tvec, inliers;
43     // 求解pnp
44     cv::solvePnPRansac( pts_obj, pts_img, cameraMatrix, cv::Mat(), rvec, tvec, false, 100, 1.0, 100, inliers );

0 人点赞