配合翔云平台完成人脸识别车牌识别

2023-10-28 13:20

本文主要是介绍配合翔云平台完成人脸识别车牌识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注册网址:https://www.netocr.com/
1.注册完翔云平台
2.购买0.01体验一下人脸识别(本文的车牌识别各种识别使用方法相同道理)
购买完成可在个人中心查看到
在这里插入图片描述

人脸识别
3.人脸识别api文档
在这里插入图片描述

以下操作要在同一个文件底下
我的是在~/httpHandler,将需要的两张图片也放到该文件路径下

demo3.c代码

#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);printf("========================get Data=====================");printf("%s\n",buf);
}char *getPicBase64FromFile(char *filePath)
{char *bufPic;char cmd[128] = {'\0'};
//      system("base64 laopo1.jpg > tmpFile");          //使用base64解析图片并放在tmFile中sprintf(cmd,"base64 %s >tmpFile",filePath);system(cmd);int fd = open("./tmpFile",O_RDWR);              //可读可写的方式打开int filelen = lseek(fd,0,SEEK_END);             //用lseek计算长度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("./reba1.jpg");char *bufPic2 = getPicBase64FromFile("./reba2.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);         //调打印数据res = curl_easy_perform(curl);          //请求printf("ok:%d\n",res);if(strstr(buf,"是") != NULL){printf("the same Person\n");}else{printf("diff Person\n");}curl_easy_cleanup(curl);}return true;
}
int main(void)
{postUrl();
}

4.修改demo3.c代码
4.1将post内容定义出来并且添加
4.2将url改成人脸识别的url(接口地址)

5.进行编译生成a.out文件

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

如果a.out运行发现出现错误:./a.out: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory

export LD_LIBRARY_PATH=./curl-7.71.1/_install/lib/

只要图片符合要求即可看到结果,不符合则降低图片的分辨率。

车牌识别
将chepai2.jpg放在~httpHandler底下操作步骤同上

车牌识别api文档
在这里插入图片描述

democar.c代码

#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);printf("========================get Data=====================");printf("%s\n",buf);
}char *getPicBase64FromFile(char *filePath)
{char *bufPic;char cmd[128] = {'\0'};
//      system("base64 laopo1.jpg > tmpFile");          //使用base64解析图片并放在tmFile中sprintf(cmd,"base64 %s >tmpFile",filePath);system(cmd);int fd = open("./tmpFile",O_RDWR);              //可读可写的方式打开int filelen = lseek(fd,0,SEEK_END);             //用lseek计算长度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 = 19;char *format = "xml";char *bufPic1 = getPicBase64FromFile("./chepai2.jpg");int len = strlen(key)+strlen(secret)+strlen(bufPic1)+124;postString = (char *)malloc(len);       //开辟空间memset(postString,'\0',len);sprintf(postString,"&img=%s&key=%s&secret=%s&typeId=%d&format=%s",bufPic1,key,secret,19,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/recogliu.do");   // 指定urlcurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,readData);         //调打印数据res = curl_easy_perform(curl);          //请求printf("ok:%d\n",res);if(strstr(buf,"是") != NULL){
//                        printf("the same Person\n");}else{
//                        printf("diff Person\n");}curl_easy_cleanup(curl);}return true;
}
int main(void)
{postUrl();
}

这篇关于配合翔云平台完成人脸识别车牌识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/293501

相关文章

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确