资源简介
开发环境为vs2013,使用绝对路径配置环境,需要自己修改一下配置路径
代码片段和文件信息
//现在我抛砖引玉一下,用百度OCR来识别文字中的文本。 首先要去注册一个百度的帐号,这里不说了,我想大家都会。注册帐号后到登陆后,申请相关的API KEY和secret key .这些东西我就不说了,在大家去申请好了。
// 现在说一下代码,百度OCR用C代码调用分为两步,第一步是用API KEY和secret key去申请access token。申请代码如下,大家复制一下就好了
#include “stdafx.h“
#include “json.h“
#include “reader.h“
#include “writer.h“
#include “value.h“
#include “config.h“
#include “curl.h“
#include “crypto.h“
#include “ocr.h“
#include
#include
#include
#include
#include
#include // std::wstring_convert
#include // std::codecvt_utf8
#include // std::uint_least32_t
#include “atlstr.h“
#include
#include “tchar.h“
#include
#include
#include “base64.h“
#include
using namespace cv;
using namespace std;
string general_ocr_result;
//这个代码运行完后就在变量access_token里就是我们要申衣的access token,用这个access token就可以进行OCR的调用了。调用代码如下
static size_t OCRcallback(void *ptr size_t size size_t nmemb void *stream)
{
// 获取到的body存放在ptr中,先将其转换为string格式
general_ocr_result = std::string((char *)ptr size * nmemb);
return size * nmemb;
}
int general_ocr(std::string &json_result const std::string &image_base64 const std::string &access_tokenconst std::string &general_ocr_url) {
std::string url = general_ocr_url + “?access_token=“ + access_token;
CURL *curl;
CURLcode result_code;
int is_success;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl CURLOPT_SSL_VERIFYPEER false); //设置问非0表示本次操作为post
curl_easy_setopt(curl CURLOPT_URL url.data());
curl_easy_setopt(curl CURLOPT_POST 1);
curl_httppost *post = NULL;
curl_httppost *last = NULL;
curl_formadd(&post &last CURLFORM_COPYNAME “image“ CURLFORM_COPYCONTENTS image_base64.data()
CURLFORM_END);
curl_easy_setopt(curl CURLOPT_HTTPPOST post);
curl_easy_setopt(curl CURLOPT_WRITEFUNCTION OCRcallback);
result_code = curl_easy_perform(curl);
if (result_code != CURLE_OK) {
fprintf(stderr “curl_easy_perform() failed: %s\n“
curl_easy_strerror(result_code));
is_success = 1;
return is_success;
}
json_result = general_ocr_result;
curl_easy_cleanup(curl);
is_success = 0;
}
else {
fprintf(stderr “curl_easy_init() failed.“);
is_success = 1;
}
return is_success;
}
static size_t callback(void *ptr size_t size size_t nmemb void *stream) {
// 获取到的body存放在ptr中,先将其转换为string格式
std::string s((char *)ptr size * nmemb);
// 开始获取json中的access token项目
Json::CharReaderBuilder b;
Json::CharReader* reader(b.newCharReader());
Json::Value root;
//reader.parse(s root);
string err;
const char *pStart = s.c_str();
int nLen = s.length();
reader->parse(pStart pStart + nLen &root &err);
std::string* access_token_result = static_cast(stream);
*access_token_result = root[“access_token“].asString();
return size * nmemb;
}
/**
* 用以获取access_token的函数,使用时需要先在百度云控制台申请相应功能的应用,获得对应的API Key和Secret Key
* @param access_token 获取得到的access token,调用函数时需传入该参数
*
相关资源
- 根据经纬度画路线百度地图
- 百度地图SDK实现定位
- 百度地图poi搜索+自动检索附近地址
- 百度文库 在线文档管理系统
- adaptive filter theory 4th en
- 百度贴吧自动发帖机(含视频教程)
- 百度文库批量上传64位.zip
- 百度地图 api 定位功能实现 和显示定
- 百度导航SDKv3.2.0开发包
- 百度手环开源项目全套资料(设计文
- tesseract-ocr-3.02.eng英文包
- 基于百度Ai -- 理解与交互技术UNIT 实现
- tesseract3.02简体中文语言包
- 全国、省、市、区县、乡镇、村六级
- 《产品的视角:从热闹到门道》
- 百度地图资源采集器
- 百度文库 牛牧老师 最完整的学籍管
- 字母数字训练集.zip
- 千百度站群精英版。内置已经记住账
- tesseract-ocr-setup-3.02.02.exe 官方绿色版
- 百度地图POI抓取器Alpha1
- 百度地图POI抓取器Alpha
- esp32-Lyratd-msc 语音识别板使用指南
- chi_sim.traineddata加OCR安装包
- 百度地图矢量工具
- BND2-v2.0.0-windows.rar
- 基于百度地图API的天气预报小应用地
- 仿照百度地图搜索功能在线建议Demo
- 百度网盘去重小软件.7z
- 百度手环开源资料
评论
共有 条评论