编程实现人脸识别

news2024/11/28 14:10:36

1.更改url

用翔云平台下的人脸识别的API文档
在这里插入图片描述
把他贴到url中:
在这里插入图片描述

2.定义参数 (根据平台给定的这些串口接收参数来定义)

在这里插入图片描述
key和secret在这里找:

在这里插入图片描述
在这里插入图片描述

3.指定post内容

在这里插入图片描述
把这部分定义成一个postString
在这里插入图片描述

4.字符串的拼接

在这里插入图片描述

sprintf函数调用的主要用途就是把一个字符串放在一个已知的字符数组里去

5.cookie先不动,最终进行请求,然后打印下请求的结果

在这里插入图片描述

6.思路:main函数进来,posturl(不传参了,没啥意义)

在这里插入图片描述
sprintf拼接字符串
然后curl_easy_init()初始化
设置cookie; 要上传的字段;人脸识别的网址;数据回来后去读数据;请求,打印请求结果。

并且把真正有效的字符打出来
在这里插入图片描述

编译运行

结果-1代表失败了,没有和翔云后台接通正常来说应该是200。

在这里插入图片描述
原因是电脑没有装OpenSSL.
解决办法:编译时加一个环境变量,指定Openssl的位置,编译时加这个选项(with ssl)
因为HTTPS协议是由SSL+HTTP协议构建的一种协议
ssl的作用:
由于接口是https开头的(人脸识别走的是http通信),https协议是在http和tcp之间多加的一层,进行身份验证和数据加密。身份验证就是key和secret。
但我们编译出来的仅支持http不支持https。

所以:
打开 docs/INSTALL.md (这个库的说明书),知道了想编译需要加ssl
在这里插入图片描述
加ssl编译:
在这里插入图片描述
但提示编译错误,因为没有OpenSSL库

安装openssl库

安装openssl库指令:wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz

解压:tar xvf openssl…
得到:
在这里插入图片描述
一般也是先看一下READ.ME
然后make
在这里插入图片描述
接着,sudo make install
编译成功后,回到curl下,继续编译:
在这里插入图片描述
(这样 系统里就有ssl了)

再make
在这里插入图片描述
再make_install

再回到handler下
在这里插入图片描述
在这里插入图片描述
编译运行:
在这里插入图片描述
但是说产品类型错误,因为我们写demo2的时候没上传图片

如何上传图片

1.首先:平台规定img1和img2是要以字符串(base64流的形式)上传的。
在这里插入图片描述
2.平时的图片一般是以jpg形式(压缩过的)存在的。bmp形式的是没压缩过的。
一张图片由很多个小的颜色色块组成,每种颜色的色块都有对应的字符串,可以把这些字串转成base64的编码

3.找两张人物图片复制到linux下
(先放到共享文件夹里,在这里输入指令sudo cp lhc.jpg /home/jmh/ 和
sudo cp lhc2.jpg /home/jmh/ 给他俩复制到工作目录下)

4.linux下自带的把jpg形式的图片转换成base64流的指令:base 64
在这里插入图片描述
回到httpHandler文件夹下
把两张图片贴过来:
在这里插入图片描述
调用system函数,把这张图生成的数据导入到tmpFile里
在这里插入图片描述
然后编译运行,生成了这个tmpFile文件。然后就可以通过读文件的形式来操作了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用粒子群优化算法(PSO)辨识锂电池二阶RC模型参数(附MATLAB代码)

目录 一、原理部分 二、代码详解部分 三、结果及分析 一、原理部分 PSO算法由美国学者于 1995 年提出,因其算法简单、效果良好,而在很多领域得到了广泛应用。该算法的起源是模拟鸟群的觅食过程,形成一种群体智能搜索算法。 其核心是&#…

使用Flask高效构建Web应用

1、聊聊Flask框架 Flask官方文档 Flask是Armin ronacher基于Python开发的微型Web框架,诞生于2010年,它依赖于jinja2模板和Werkzeug WSGI服务。Flask的核心简单易于扩展,它不会替你做出太多决策比如使用何种数据库或模板引擎,这些都…

抖音seo矩阵系统源码解析

抖音SEO矩阵系统源码是一种用于优化抖音视频内容的工具,可以帮助用户提高抖音视频的搜索排名和流量,从而增加视频曝光和转化率。该系统包括两部分,即数据收集和分析模块以及SEO策略和实施模块。 数据收集和分析模块主要负责从抖音平台上收集…

认识功能安全

01、什么是功能安全 1-背景简介 由于汽车的复杂性,整个行业正在致力于提供符合安全要求的零部件系统。比如,线控油门系统,当驾驶员踩下油门踏板,踏板上的传感器向控制器发送信号时,控制器会综合分析如发动机转速、车…

ERP系统实施,8个需要了解的关键绩效指标

实施ERP系统是一项复杂的、耗时的工作,但它也代表了企业重新思考其战略、目标和流程的绝佳机会。成功的ERP实施可以激发创新,改善企业的所有领域。例如,通过集中企业各部门不断增长的财务和业务数据,所有的决策者都在同一个页面上…

非煤矿山电子封条系统算法方案 opencv

非煤矿山电子封条系统算法部署方案是基于pythonopencv网络模型Ai视频图像识别技术,非煤矿山电子封条系统算法部署方案对出入井人员、人员变化及非煤矿山生产作业状态等状况,及时发现处理异常动态将自动发出警报。OpenCV的全称是Open Source Computer Vis…

亲身经历告诉你,0基础转行学Python,毕业就能15000

对生活现状的不满,对自己浑浑噩噩的厌恶,以及对互联网行业的憧憬,让我下定决心选择去黑马程序员开启转行之旅。 学科 | Python大数据开发 薪资 | 15000 时间总是在你回忆往事时才会觉得短暂,来黑马之前觉得六个月将是一段很漫长…

操作系统原理 —— 内存动态分区分配算法(二十一)

在上一个章节我们讲了内存连续分配的几种方式,有单一、固定、动态这三种,在固定、动态这种里面,操作系统会记录空闲分区表,这个表是用来记录当前空闲的内存。 那么在之后有新的进程装入内存,需要从空闲分区表中找到一…

从零手写操作系统之RVOS内存管理模块简单实现-02

从零手写操作系统之RVOS内存管理模块简单实现-02 内存管理分类内存映射表(Memory Map)Linker Script 链接脚本语法基于符号定义获取程序运行时内存分布 基于 Page 实现动态内存分配代码讲解调试 扩展 本系列参考: 学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春 整…

qrcode.min.js下载

目录 qrcode.min.js下载步骤: 去官网 下载后解压: 如下:就可以得到 qrcode.min.js文件了 qrcode.min.js下载步骤: 去官网 可以前往qrcode官网(https://davidshimjs.github.io/qrcodejs/)下载qrcode.m…

培训pytorch(未完善) bp算法原理

生物的神经元 接受外部的刺激 神经网络工作流程演示

MySQL高可用集群解决方案之:MySql Cluster搭建

MySQL是当前使用最广泛的关系型数据库管理系统之一,但MySQL在高并发访问和大量数据处理方面存在较为明显的性能瓶颈。为了解决MySQL单点故障带来的不便和可扩展性问题,我们需要构建稳定性极高的MySQL集群方案。本文将介绍一种快速搭建MySQL集群的解决方案…

机器学习聚类算法——BIRCH算法、DBSCAN算法、OPTICS算法

系列文章目录 前言 本文主要介绍BIRCH算法、DBSCAN算法、OPTICS算法,以及相关案例举例,以下案例仅供参考 一、BIRCH算法 1.1、BIRCH算法简介 BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies,平衡迭代规约…

Kubernetes(K8s)各组件白话解释

深入springboot怎么启动tomcat NameSpacePodDeployment1. 创建多个副本2. 扩容/缩容3. 滚动更新4. 版本回退 ServiceClusterIpNodePort Ingress 个人笔记,仅供参考。 来源于尚硅谷视频 转载请评论。 NameSpace 名称空间,在K8s中用于隔离资源。对不同资源…

第十一届“泰迪杯”数据挖掘挑战赛成绩公示

第十一届“泰迪杯” 数据挖掘挑战赛成绩公示 第十一届“泰迪杯”数据挖掘挑战赛历时两个月顺利结束。竞赛采用盲审(屏蔽参赛者信息;评审专家只能评阅非本区域作品;三位评阅专家同时评阅同一作品,超限调整后再取平均分&#xff0…

【小米的技术分享】数据库索引原理与底层数据结构解析

大家好,我是小米。今天我们来探讨一下数据库索引原理以及底层索引数据结构,同时还会介绍叶子节点存储的内容以及索引失效的情况。废话不多说,让我们开始吧! IO操作与索引 首先,我们先来了解一下IO操作对于数据库索引的…

【区块链 | L2】作为Layer2赛道的领跑者,如何理解 Arbitrum?

上周我们介绍了以太坊L2扩展解决方案Optimism,本周我们继续介绍另一个L2解决方案——Arbitrum。Arbitrum 是以太坊的一个 Optimistic Rollup L2 可扩展性解决方案。 Part.1 什么是Arbitrum? Arbitrum 是一个构建在以太坊之上的区块链网络。你可以使用 Arbitrum 链来做任何在…

长短连接对压测的影响有多大?!

【引言】 当我们进行压力测试时,长短连接是一个非常重要的参数。但是,你知道吗?长短连接对于压测结果有着非常大的影响!如果你不理解这个参数,那么你的压测结果可能会出现严重的偏差。 在这篇文章中,我将…

快速在linux上配置python3.9的环境以及可能报错的解决方案(python其它版本可同样方式安装)

一. linux安装python3.9 步骤1:安装系统依赖(重要) 这一步不执行,后面各种错误。 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-d…

C#:不同登录用户阅读状态的修改:不同的登录用户,登录用户修改阅读状态后,状态变为已读,未修改阅读状态的用户,依然显示未读的程序实例

一、创建数据库 首先,可以使用SQL Server Management Studio创建一个新的数据库(MyDatabase) 以及三个表(Users, Messages, UserMessageStatus),分别用于存储用户信息,消息信息以及用户消息状态。 Users表 该表包含了所有注册用户的信息。…