没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
笔记本: gsoap
创建时间: 2019/12/11 10:09 更新时间: 2019/12/17 17:57
作者: 汪暾
URL: https://www.cnblogs.com/liushui-sky/p/9723397.html
gsoap 创建服务端、客户端进行 centerface 人脸检测
概述
本文通过 gsoap 编写 webservice 服务端、客户端程序,在服务端利用 opencv_4.1.2 的
DNN模块加载 onnx 格式的 centerface 人脸检测模型,共提供两个接口函数,可分别接
收 图片路径或base64格式的图片,人脸检测结果以结构体的形式返回。
一、gSOAP 下载
从官网下载gsoap_2.8.96
下载后解压即可,主要用到的文件有
gsoap-2.8/gsoap/bin/win64 目录下的 soapcpp2.exe 和 wsdl2h.exe,以及 gsoap-
2.8/gsoap 目录下的 stdsoap2.cpp 和 stdsoap2.h,这些文件直接拿来用即可。
soapcpp2.exe 是一个根据.h文件生成若干支持webservice的代码生成工具,生成的代码
文件包括webservice客户端和服务器的实现框架,XML数据绑定等。
wsdl2h.exe 可以根据输入的wsdl或XSD或URL,产生相应的C/C++形式的.h(不能直接
引用),供soapcpp2使用。
二、编写 .h 接口头文件
接口头文件用于声明接口函数,每个函数前面需要以“ns__”开头,如以下 face.h 内容为
//gsoap ns service name: face
//gsoap ns service style: rpc
//gsoap ns service encoding: encoded
struct ns__SingleFaceInfo {
float x1;
float y1;
float x2;
float y2;
float score;
float landmarks[10];
};
struct FaceRes {
int __size;
struct ns__SingleFaceInfo **__ptr;
};
int ns__FaceDetectByImgpath(std::string img_path, struct FaceRes *face_res);
int ns__FaceDetectByBase64 (std::string img_base64,struct FaceRes *face_res);
注意,最开始的注释文字是有用的,可以参考详细文档。
该接口文件只提供了两个接口函数,ns__FaceDetectByImgpath 是通过图片路径进行人脸
检测,ns__FaceDetectByBase64 是通过 base64 格式的图片进行人脸检测。根据 gsoap
的要求,函数名前面必须以 “ns__”开头, 返回值必须为 int,但是这里的int并不是接口
的返回值,而是gsoap内部的返回值。例如
int ns__add( int a, int b, int *c );
真正的返回值是int *c。
同样,上述头文件中真正的返回值是
struct FaceRes *face_res。
根据 gsoap 规范, 接口只能返回一个参数,如果有多个参数返回,需要用到结构体。
三、通过 .h 头文件生成服务端、客户端的相关依赖文件
建立一个 gsoaptest_vs2015_centerface 文件夹,分别将第一步提到的文件
soapcpp2 -j -r -SL face.h
soapcpp2 -j -r -CL face.h
-j : 表示生成一个 c++ 代理类
-r : 表示生成一个报告
-SL : 表示只生成服务端的代码,而不会生成用不着的lib文件
-CL : 表示只生成客户端的代码,而不会生成用不着的lib文件
soapcpp2.exe
wsdl2h.exe
stdsoap2.cpp
stdsoap2.h
以及第二步创建的
face.h
文件复制到该 gsoaptest_vs2015_centerface 文件夹。
在 cmd 命令行窗口,移动到 gsoaptest_vs2015_centerface 文件所在目录,并执行
以下命令
出现 compilation successful 表明生成成功,否则需要根据错误提示修改 face.h 内容。
生成后内容如下
四、建立VS2015工程
在 gsoaptest_vs2015_centerface 文件夹中新建 gsoaptest_vs2015 文件夹,在该文件夹
建立vs2015工程,分别建立两个项目 gsoapServerTest 和 gsoapClientTest,均设置为
Release X64 模式。
4.1 gsoapServerTest 项目
在项目的包含目录中添加上述第三步生成文件所在的路径,用于添加相应的头文件及源文
件。
添加包含目录、配置opencv路径
剩余11页未读,继续阅读
love彤彤
- 粉丝: 31
- 资源: 311
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0