原理搞懂之后就很简单
参考
https://blog.csdn.net/qq_28258885/article/details/112095935

目录

  • 查看相关API
  • 准备图片
  • 代码
  • 执行

查看相关API

本篇使用的是祥云平台

以上为官网中相关文档

准备图片

代码

根据文档修改代码

#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <string.h>#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>//for open#include <sys/types.h>
#include <unistd.h>//for lseek#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)
{char buf[1024] = {"\0"};strncpy(buf, ptr, 1024);printf("===================get Data==================\n");printf("%s\n",buf);      //only for testprintf("=============================================\n");
}char* getPicBase64FromFile(char *filePath)//the path is used to store base64
{char *bufPic;char cmd[128] = {"\0"};sprintf(cmd, "base64 %s > tmpFile", filePath);//create a file to store base64system(cmd);int fd = open("./tmpFile", O_RDWR);int filelen = lseek(fd, 0, SEEK_END);//get the len of base64lseek(fd, 0, SEEK_SET);bufPic = (char *)malloc(filelen + 2);memset(bufPic, '\0', filelen + 2);read(fd, bufPic, filelen);//read base64 to bufPicclose(fd);system("rm -f tmpFile");//remove the file after readreturn bufPic;//return the dest of the space of malloc,the space still exists}
bool postUrl()
{CURL *curl;CURLcode res;char *postString;char *key = "L22************u4";//ur OCR keychar *secret = "95ca*******************58a";//ur OCR secretint typeId = 19;char *format = "xml";//by the setting of the web onwerchar *bufPic1 = getPicBase64FromFile("./car.jpg");int len = strlen(key) + strlen(secret) + strlen(bufPic1) + 124;//get lenpostString = (char *)malloc(len);sprintf(postString, "&img=%s&key=%s&secret=%s&typeId=%d&format=%s",bufPic1, key, secret, typeId, format);//get the string which we post to the OCR platformcurl = curl_easy_init();//lib curl initif (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);//callBack functionres = curl_easy_perform(curl);printf("ok:%d\n", res);//get the return numcurl_easy_cleanup(curl);//lib curl cleanup}return true;
}
int main(void)
{postUrl();
}

执行

gcc car.c -I ~/tools/curl-7.71.1/_install/include/ -L ~/tools/curl-7.71.1/_install/lib/ -lcurl -o car

C语言调用外部API实现车牌识别相关推荐

  1. Python实例之调用百度API实现车牌识别

    目录 1.作者介绍 2.车牌识别API介绍 3.实现过程 3.1 调用API 3.2 代码 参考 1.作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究 ...

  2. Python调用阿里API进行车牌识别

    目录 1.作者介绍 2. API介绍 2.1 API的概念 2.2 API的特点 2.3 API的分类 3.获取阿里云API 4.实验代码及结果 4.1 导入项目所需的库 4.2 输入网址URL,以及 ...

  3. 一个调用云API进行车牌识别的的例子

    这个网址提供了一个云车牌识别的测试接口,我测试一下.下边是代码. import base64 import requestsimage_path = "1.jpg" secret_ ...

  4. python3调用百度API完成人脸识别,检测人种-年龄-性别-颜值-眼镜

    https://ai.baidu.com/docs#/Face-Detect/top 这个是百度人脸识别api 参考博客:https://blog.csdn.net/qq_38412868/artic ...

  5. Python调用百度API进行身份证识别

    目录 1.作者介绍 2.基于百度API的身份证识别 2.1 百度ORC接口简介 2.2 算法介绍 2.2.1图像预处理 2.2.2身份证图像粗定位 2.2.3细定位各种信息和分割 2.2.4识别信息 ...

  6. c语言调用 svn api,Subversion API 使用简介

    使用Subversion库API开发应用看起来相当的直接,所有的公共头文件放在源文件的subversion/include目录,从源代码编译和安装Subve 使用 API 使用Subversion库A ...

  7. C语言调用WIN32 API学习之6鼠标与键盘响应

    前几节学习了基本控件的创建,下面学习下鼠标与键盘的响应 1,打开VC++6.0,点击 文件->打开工作空间 选择example1,点击确定,打开工程. 2,更改代码如下: LRESULT CAL ...

  8. 简单调用百度api实现车型识别

    实现前需要先pip install baidu-aip 模块 在百度开发者的平台注册,网站如下 https://cloud.baidu.com/product/imagerecognition 创建应 ...

  9. 车牌识别算法_PC端车牌识别SDK融入好算法

    PC端车牌识别SDK介绍 易泊PC端车牌识别SDK融合了车牌定位.车牌字符切分.车牌字符识别等算法,使该系统具有识别效率高.速度快.适应性强.使用方便等优势,技术处于国际先进水平.大力发展机器人.人工 ...

  10. 易语言如何调用c dll文件,易语言调用C++写的DLL

    直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误. 解决方案很简单,易语言声明DLL函数时"在库中对应命令名&q ...

最新文章

  1. linux进程间通信:FIFO应用 /var/log/ 系统日志的模拟实现
  2. Python面向对象编程:深度认识类class
  3. 如果文件夹不存在,请创建它
  4. 基于稀疏表示的人脸识别 (SRC,LASRC,RASL,MRR)
  5. java在图片下方写文字_Java画图给图片底部添加文字标题
  6. python gpu编程_Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速
  7. 2021中国餐饮行业数字化调研报告
  8. nyoj 86 找球号(一)
  9. window server2012服务器上如何安装nginx并启动
  10. Spring Boot Web相关配置
  11. SpringMVC中实现文件上传
  12. CTF中的RSA套路
  13. Tilera多线程网络编程总结
  14. ESP32-S3无线WiFi芯片模组,赋能家居设备智能化生活应用
  15. python如何爬取百度云_python如何爬取百度云连接方法指导
  16. Python学习-1.基础语法元素
  17. 逻辑代数的基本公式和常用公式基本定理
  18. 分数除法计算机应用题练习,分数除法应用题 六年级的,分数除法应用题练习...
  19. 总结常见应用层协议端口号
  20. 第十章 设计模式/垃圾回收/装饰器/闭包

热门文章

  1. Visual Studio 2012 下载地址 V11各种版本官方下载网址
  2. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.26
  3. WPS简历模板的图标怎么修改_桌面图标怎么修改?自定义软件图标的操作方法
  4. Linux内核参考链接与书籍
  5. 新库上线 | CnOpenData中国环境统计年鉴数据
  6. Android聊天软件开发(基于网易云IM即时通讯)——添加好友(三)
  7. 经典卷积神经网络——VGG16
  8. 感觉c语言入门经典看不懂,c语言入门经典怎么样_学c语言看什么书_c语言入门自学(3)...
  9. RiruEdxposed学习研究(四)Magisk(面具)源码下载编译详细实战教程
  10. c++做病毒|教程代码