首页 >>  正文

set+函数

来源:baiyundou.net   日期:2024-09-22

Software Development Kit(简称缩写SDK),又称软件开发工具包,是辅助用户基于来高科技软硬件产品开发项目,实现功能的文档、范例和工具的集合。来高科技经过十多年自主开发,已经形成了有关三维数据采集以及三维数据分析的强大生态系统。来高科技开发工具包(简称“来高SDK”),允许用户以调用接口的方式使用来高三维视觉系列产品实现项目功能,解决用户难题,降低开发难度,提升开发效率,简化开发流程,是用户完成项目的好助手。

本文将介绍如何通过来高SDK接口控制三维扫描软件打开工程文件和新建工程文件,方便用户快速完成项目开发。示例代码以C++为例,编译器环境visual studio 2022。

打开工程文件的函数原型如下

bool techlego::h_scan3d_client::open_project(const char* fullpath);

参数fullpath为UTF-8字符串全路径,返回值为是否打开成功。

例如:在“D:\\lego\\HXData”路径下有工程文件夹名叫“NewProject”

在工程文件中找到“NewProject.vtop”的工程文件

首先将程序与客户端连接

然后打开工程

最后对返回值进行判断,如果为true则工程打开成功,否则需要创建一个新工程;如果创建的新工程创建失败,则退出程序。

创建新工程的函数原型如下

bool techlego::h_scan3d_client::create_project(const char* path, const char* name);

参数path为UTF-8字符串全路径,工程名name也为UTF-8字符串,返回值为工程创建是否成功。

这里传入的path路径为工程文件夹的存放位置,在这个工程文件夹中存放“.vtop”工程文件,在打开工程的时候,传入的是“.vtop”的路径,而不是“工程文件夹”的位置。

在使用三维扫描仪执行扫描操作之前,需要获取三维扫描仪的状态,判断相机是否开启。这里需要用到get_camera_state成员函数,其原型如下:

bool techlego::h_scan3d_client::get_camera_state();

返回值为相机是否开启,为true则说明相机已经开启。

若相机未开启,则调用set_camera_range函数打开相机组;若相机组已经开启则切换到指定的相机组,其函数原型如下:

bool techlego::h_scan3d_client::set_camera_range(const signed char& index);

传入的参数是一个左值,表示相机组的序号。若相机组只有单组,传入的参数为0,代表第一组相机组;若相机组不止一组,从0开始按需求打开多个相机组。(set_camera_range可以直接传入字面常量0)

若相机打开或者切换(这里使用其打开相机的功能)失败,则执行“exit”函数退出程序。

程序的全部源代码

#include<techlego_one.h>

int main(int argv, char* args[])  

{

//连接到客户端  

autoprotocol = techlego::create_binary_protocol(L"localhost", 5252);  

autoclient = techlego::h_scan3d_client::make_shared(protocol);  

//打开工程,如果打开失败则新建一个工程

bool ret = client->open_project(u8"D:\\\\lego\\\\HXData\\\\NewProject\\\\NewProject.vtop");  

if (!ret)  

{

//如果创建失败,则关闭程序

ret= client->create_project(u8"D:\\\\lego\\\\HXData", u8"NewProject");  

if (!ret)  

{

exit(EXIT_FAILURE);

}

}

//检查相机状态

ret= client->get_camera_state();  

if (!ret)  

{

//打开0号相机组

signed char index = 0;  

ret= client->set_camera_range(index);  

if (!ret)  

{

//如果打开失败

exit(EXIT_FAILURE);

}

}

return 0;  

}

新建工程成功后,在三维扫描软件中将显示新建工程。

原文”查看更多精彩内容


","gnid":"9025096a6d8805263","img_data":[{"flag":2,"img":[{"desc":"","height":"324","title":"","url":"https://p0.ssl.img.360kuai.com/t01626b0278e3805c34.jpg","width":"830"},{"desc":"","height":"152","title":"","url":"https://p0.ssl.img.360kuai.com/t0199769df46ac835af.jpg","width":"497"},{"desc":"","height":"253","title":"","url":"https://p0.ssl.img.360kuai.com/t01a09c113de1fe60b8.jpg","width":"588"},{"desc":"","height":"121","title":"","url":"https://p0.ssl.img.360kuai.com/t01887676fc7784f84e.jpg","width":"750"},{"desc":"","height":"63","title":"","url":"https://p0.ssl.img.360kuai.com/t012435141ccc5205b9.jpg","width":"896"},{"desc":"","height":"250","title":"","url":"https://p0.ssl.img.360kuai.com/t017f7aa35172d53369.jpg","width":"808"},{"desc":"","height":"65","title":"","url":"https://p0.ssl.img.360kuai.com/t01d7aaa7c3c3463006.jpg","width":"401"},{"desc":"","height":"295","title":"","url":"https://p0.ssl.img.360kuai.com/t01e304fc47397c5728.jpg","width":"479"},{"desc":"","height":"267","title":"","url":"https://p0.ssl.img.360kuai.com/t015db99980055aa8d3.png","width":"705"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1701069714000,"pure":"","rawurl":"http://zm.news.so.com/f06384ae6a805aada91a25a7d006f4c5","redirect":0,"rptid":"9ecfaa9e7c13d0bb","rss_ext":[],"s":"t","src":"来高科技","tag":[{"clk":"ktechnology_1:相机","k":"相机","u":""}],"title":"来高SDK接口应用:程序与客户端连接并新建工程

索逃耐3972c++ set 比较函数 -
巴仲耐18544744925 ______ #include#include#include#include using namespace std;class a {public: bool operator()(int a,int b) { return a>b; ...

索逃耐3972matlab中函数set(gca,'xtick', - 2:1: -
巴仲耐18544744925 ______[答案] set函数 将当前图形(gca)的x轴坐标刻度(xtick)标志为: -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

索逃耐3972C++中使用函数set和get需要包含什么头文件? -
巴仲耐18544744925 ______ 哪部分的set/get就要包含相应的头. 例如: std::istream::get 要包含 #include <fstream> tuple 的 std::get 要包含 #include <tuple> std::set::set 要包含 #include <set>

索逃耐3972java中为什么要用get,set函数来操作成员变量 -
巴仲耐18544744925 ______ 在java中,以get与set开关的方法是有特殊意义的,get与set后面的字符串,第一个字母小写后,被称为属性,而成员变量叫字段,字段与属性不是等同的,具体的你可以搜索一下.如果你学到后面,会发现很多框架都要求字段要有getter与setter方法的,因为有了这两个方法就可以设置值与取值,这是JavaBean的约定.

索逃耐3972c++类中set get函数有什麽作用,尤其是get函数 -
巴仲耐18544744925 ______ set是向一个类中的属性中赋值,get则是取出该类的某属性的值,return 返回的值并不是为了输出到操作平台上,而是进行其他处理或进行运算来用于其他目的 比如一类中i的属性值为3,那么我们可以用getI()这个方法取到3这个值,再用于其他运算: int k=5*object.getI();

索逃耐3972C++中void set()是什么意思?它和void main()有什么区别? -
巴仲耐18544744925 ______ void set()是一个自定义无返回类型的函数,void main()是一个主函数(必须有的)

索逃耐3972c++中函数体参数时Void和空着有什么区别? 如void set()和void set(void)有什么不一样?谢谢! -
巴仲耐18544744925 ______ 没有区别,据我所知,他的用途有如下2个: 1 在工具自动生成代码的时候使用.比如你使用VC2008为类添加一个没有参数的函数set,那么就会使用void set(void)的形式. 2 在定义模板函数或者模板函数的时候使用,例如,你的模板函数假定用户传递一个参数,而实际上用户调用这个模板函数的时候并没有传递参数,那么这个模板参数的类型就是void

索逃耐3972c++中的在类中定义的set - value函数怎么定义,在mian 函数中怎么用? -
巴仲耐18544744925 ______ 你这个函数是用来修改类中成员变量的值的么? 如果是,可以这样,将下面这个共有成员函数放到类里面 public set_value(类型 形参1,类型 形参2,....)//其它的类似 { 成员1=形参1; 成员2=形参2;//这里的成员可以是私有的 ..... } 或者是在类外面 那么在类里面先声明 public set_value(类型 形参1,类型 形参2); 在类的外面 类名::set_value(类型 形参1,类型 形参2) { 成员1=形参1; 成员2=形参2; ..... } //注意如果是定义属性的话,那就不是C++了,而是Csharp里面的东西,具体参考Csharp中属性的定义语法.

索逃耐3972如何运用access中设置函数 -
巴仲耐18544744925 ______ 在access中,我们可以很方便地使用Function声明自定义函数(即过程),并在各处灵活引用它. 1. 先看一下access开发人员参考中关于声明函数的文档 声明 Function 过程的名称,参数以及构成其主体的代码. 语法 [Public | Private | Friend] [...

索逃耐3972...//返回集合中的元素个数int Set::getd(int i);//返回集合中位置i的元素void Set::disp();//输出集合的所有运算Set Set::operator+ (Set s1);//成员运算符重... -
巴仲耐18544744925 ______[答案] 集合的运算: ? 交运算:设A,B是两个集合,则A∩B={x|(xA)并且( 好像用数组比较好做

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024