当前位置: 首页 > news >正文

简述建设一个商务网站的过程/石家庄网络推广平台

简述建设一个商务网站的过程,石家庄网络推广平台,沙河口网站建设,有啥网站是专做时尚穿搭目录 一、前言 二、编译openssl支持libcurl的https访问 三、编写人脸识别代码 四、编程实现人脸识别第二次加入图片base64编码 五、总结 一、前言 上一篇文章我们调用libcurl库去访问了百度,访问的是http协议的百度云主页。那么现在我们要基于翔云人工智能平台…

目录

一、前言

二、编译openssl支持libcurl的https访问

三、编写人脸识别代码 

四、编程实现人脸识别第二次加入图片base64编码

五、总结


一、前言


上一篇文章我们调用libcurl库去访问了百度,访问的是http协议的百度云主页。那么现在我们要基于翔云人工智能平台来实现人脸识别,具体的操作大概就是我们在linux下调用libcurl库去访问翔云人工智能平台,然后实现我们想要的两张人脸图片的识别结果这样一个功能。但是翔云人工智能平台的协议是https的协议,这是我们的libcurl库需要支持https协议的话,还需要装上openssl这个库,装好之后我们再重新安装libcurl库并且支持ssl这个库。

二、编译openssl支持libcurl的https访问
 

1、下载openssl库:

温馨提示:在httpHandler目录下,下载openssl库

wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz //下载tar xvf openssl-1.1.1a.tar.gz //解压cd openssl-1.1.1a  //进入openssl-1.1.1a目录下./config           //配置在系统的默认位置,省的我们调库的时候再去找库的位置make               //编译sudo make install  //最后一步安装完成

编译结果:

 2、回到curl-7.71.1文件下,输入指令:

提示:要从上一个openssl-1.1.1a文件回到curl-7.71.1文件下

./configure --prefix=$PWD/_install --with-ssl
make
make install

三、编写人脸识别代码 

1、注册一个翔云人工智能开放平台的账号,然后购买人脸识别的产品,怎么注册和购买产品这里就不多说啦,大家可以去翔云网站了解哈。

翔云人工智能开放平台官网:人脸识别

2、新建一个demo2.c文件,编写人脸识别代码

#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
#include <stdlib.h>#define true 1
#define false 0
typedef unsigned int bool;size_t readData(void *ptr,size_t size,size_t nmemb,void *stream)
{char buf[1024] = {'\0'};strncpy(buf,ptr,1024);printf("====================================get Data===================================\n");printf("%s\n",buf);
}
bool postUrl()
{CURL *curl;CURLcode res;char *postString;char img1[12];char img2[12];char *key = "这块内容请自行购买翔云人工智能平台的产品信息填写";   char *secret = "这块内容请自行购买翔云人工智能平台的产品信息填写"; int typeId = 21;char *format = "xml";postString = (char *)malloc(strlen(key)+strlen(secret)+2048);sprintf(postString,"img1=%s&img2=%s&key=%s&secret=%s&typeId=%d&format=%s","","",key,secret,21,format);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "/tmp/cookie.txt"); // 指定cookie文件curl_easy_setopt(curl, CURLOPT_POSTFIELDS,postString);    // 指定post内容curl_easy_setopt(curl, CURLOPT_URL, "https://netocr.com/api/faceliu.do");   // 指定urlcurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,readData); //将返回的http头输出到fp指向的文件res = curl_easy_perform(curl);printf("OK:%d\n",res);curl_easy_cleanup(curl);}return true;
}
int main(void)
{postUrl();
}

gcc demo2.c -I ./curl-7.71.1/_install/include/ -L ./curl-7.71.1/_install/lib/ -lcurl 

运行结果如下: 

四、编程实现人脸识别第二次加入图片base64编码

提示: jpg格式的图片是压缩过的bmp格式的图片

1、什么是base64?

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上“符号类”字符(+, /, =),不同的应用场景又分别研制了Base64的各种“变种”。为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本。

因为我们调库去访问翔云人工智能平台实现人脸识别的时候,人家要求上传的图片要求是base64流的图片,所以我们要把上传识别的照片转化成base64流的格式。

2、编写代码前,先下载两张jpg格式的图片,放在和人脸识别代码同一个目录下,方便一会儿使用

 3、编写人脸识别代码

#include <stdio.h>
#include <curl/curl.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>#define true 1
#define false 0
typedef unsigned int bool;
char buf[10240] = {'\0'};size_t readData(void *ptr,size_t size,size_t nmemb,void *stream)
{strncpy(buf,ptr,1024);
}char* getPicBase64FromFile(char *filePath)
{char *bufPic;char cmd[128] = {'\0'};sprintf(cmd,"base64 %s > tmpFile",filePath);system(cmd);int fd = open("./tmpFile",O_RDWR);int filelen = lseek(fd,0,SEEK_END);lseek(fd,0,SEEK_SET);bufPic =(char *)malloc(filelen+2);memset(bufPic,0,filelen+2);read(fd,bufPic,filelen);close(fd);system("rm -f tmpFile");return bufPic;
}
bool postUrl()
{CURL *curl;CURLcode res;char *postString;char *key = "这块内容请自行购买翔云人工智能平台的产品信息填写";char *secret = "这块内容请自行购买翔云人工智能平台的产品信息填写";int typeId = 21;char *format = "xml";char *bufPic1 = getPicBase64FromFile("./1.jpg");char *bufPic2 = getPicBase64FromFile("./2.jpg");int len = strlen(key)+strlen(secret)+strlen(bufPic1)+strlen(bufPic2)+124;postString = (char *)malloc(len);memset(postString,'\0',len);sprintf(postString,"img1=%s&img2=%s&key=%s&secret=%s&typeId=%d&format=%s",bufPic1,bufPic2,key,secret,21,format);curl = curl_easy_init();if (curl){curl_easy_setopt(curl, CURLOPT_POSTFIELDS,postString);    // 指定post内容curl_easy_setopt(curl, CURLOPT_URL, "https://netocr.com/api/faceliu.do");   // 指定urlcurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,readData); //将返回的http头输出到fp指向的文件res = curl_easy_perform(curl);printf("OK:%d\n",res);if(strstr(buf,"shi") != NULL){printf("the same Person\n");}else{printf("diff Person\n");}curl_easy_cleanup(curl);}return true;
}
int main(void)
{postUrl();
}

4、进行编译:

gcc demo3.c -I ./curl-7.71.1/_install/include/ -L ./curl-7.71.1/_install/lib/ -lcurl

5、执行结果:  ./a.out

温馨提示:

因为我上述的代码中判断,如果两张照片是类似的就打印:the same Person,如过两张照片差距较大,就打印:diff Person,我放的是两张差距较大的照片,所以就打印了:diff Person

五、总结


1、我们是通过调libcurl库去访问翔云人工智能平台让平台来帮我们实现人脸识别和车牌识别的。所以要根据平台API的要求我们要上传哪些参数,然后利用我们调的libcurl库的函数帮我们访问上传这些参数,然后返回我们想要的结果。

2、所谓库就是别人已经封装好了的一些可执行程序,我们使用的时候只要去阅读库的使用说明来使用就好了。大致都是用到库的一些功能函数来实现我们想要的功能。像之前学到的树莓派的lirinbgPi库一样,它也有很多函数。
 

感谢:Linux基础之Libcurl库之HTTPS协议实现人脸识别_libcurl https_free'的博客-CSDN博客

http://www.jmfq.cn/news/4808917.html

相关文章:

  • logo设计理念简短范文/seo快速推广窍门大公开
  • 在那个网站上做设计赚钱/营销软文范例大全300
  • 荆门网站开发公司/济南网络优化厂家
  • 前端网站做中 英文怎么说/女生做sem专员的工作难吗
  • 软件公司排名100强/武汉seo搜索引擎
  • java调接口做网站/地推网app推广平台
  • 绵阳top唯艺网站建设/网站生成app工具
  • 手机端建站/seo门户网站建设方案
  • 北京好的做网站的公司/成功的软文推广
  • 做购物网站表结构分析/在线科技成都网站推广公司
  • 在日本做网站/域名大全
  • 网站未做安全隐患检测怎么拿shell/奶茶软文案例300字
  • 四川省和城乡建设厅网站/百度点击率排名有效果吗
  • 怎样保存网站资料 做证据/网络营销策划需要包括哪些内容
  • 金乡县住房与城乡建设局网站/企业网络营销方案策划
  • 易购商城网站怎么做啊/2022网站seo
  • 太平洋建设 网站/网络营销环境分析包括哪些内容
  • 公司怎么做网站需要多少钱/手机流畅优化软件
  • 用网站做CAN总线通信好吗/百度推广的几种方式
  • 企业网站系统详细设计/培训方案
  • 济南网站设计公司推荐/数字营销公司排行榜
  • 旅游公司网站建设/网络推广方式方法
  • 颍上县建设局网站/北京网站
  • wordpress默认模版/推推蛙贴吧优化
  • 福州网站建设推广/百度站长联盟
  • 重庆做网站的/友情链接网站免费
  • 网站建设天天软文靠谱/百度下载并安装最新版
  • 成都网站建设专家/长春seo公司
  • seo百家外链网站/百度app旧版本下载
  • 免费做网站. 优帮云/什么是百度推广