NET实现谷歌OCR的使用记录(CLOUD VISION API)
1)购买VPS
2)配置一VPN 建议使用 cisco anycounect | Shadowsocks会连接失败(切记,祭奠浪费的一天)大神可以帮我看下是什么问题
3)进入https://cloud.google.com/?hl=zh-cn 注册一个账号,新用户有免费的$300美元可以使用
4)新建项目-结算-获取KEY- 启用api-查阅文档 https://cloud.google.com/vision/docs/?hl=zh-cn
5)有两种方式 1)自己按文档写(挺简单的) 2)引用客户端库来简化 以下为2实现
6)引用
Install-Package Google.Cloud.Vision.V1 -Pre
7)创建服务账户(谷歌控制台新建)
转到GCP控制台中的创建服务帐户密钥页面。
- 从服务帐户下拉列表中选择 新建服务帐户。
- 在服务帐户名称字段中输入一个名称。
- 从角色下拉列表中选择一个值object-所有者。
- 点击创建。出现一条提示,警告该服务帐户没有任何作用。
- 点击不带角色的创建。包含您的密钥下载到您的计算机的JSON文件。
8)设置电脑环境变量(使用Powershell)
$env:GOOGLE_APPLICATION_CREDENTIALS="你下载的json放的位置"
9)查看变量是否已存入
ls env:
10)变量需重启电脑才生效
11)测试代码
public static string Get(string path)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile(path);
var response = client.DetectText(image);
var str = "";
foreach (var annotation in response)
{
if (annotation.Description != null)
str+=annotation.Description;
}
return str; }
12)调用
var path = Server.MapPath(userrecords.url);
var str = Get(path);
return str;
13)官方详细demo
https://googlecloudplatform.github.io/google-cloud-dotnet/docs/Google.Cloud.Vision.V1/index.html
14)遇到的坑
1)vpn的坑,要慎重
2)基础连接已关闭的原因 需要设置
request.ProtocolVersion = HttpVersion.Version11;
request.KeepAlive = false;
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true; //总是接受 哈哈
}
3)谷歌注册需要国际通用信用卡,一定情况下还需要上传身份证 信用卡照片什么的,还好 不算太坑
NET实现谷歌OCR的使用记录(CLOUD VISION API)的更多相关文章
- 非黑即白--谷歌OCR光学字符识别
# coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...
- K/3 Cloud Web API接口说明文
K/3 Cloud Web API接口说明文 目的 三方集成,提供第三方系统与Cloud集成调用接口. 技术实现 HTTP + Json 提供标准接口 编号 名称 说明 1 Kingdee.BOS.W ...
- Step by Step to create orders by consuming SAP Commerce Cloud Restful API
Recently Jerry is working on an integration project about creating orders in Wechat platform by cons ...
- 【Android Developers Training】 89. 最大化的使用谷歌云消息(Google Cloud Messaging)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 玩转Spring Cloud之API网关(zuul)
最近因为工作原因,一直没有空写文章,所以都是边忙项目,边利用空闲时间,周末时间学习总结,最终在下班回家后加班加点写完本篇文章,若有不足之处,还请谅解,谢谢! 本文内容导航: 一.网关的作用 二.网关与 ...
- 谷歌统计使用代码部署和事件API使用
谷歌统计代码部署和API使用 1.注册谷歌账号 要使用GA,必需先成为GOOGLE的注册用户,如果没有请去注册.当然,你有GMAIL邮箱就可以.邮箱就是帐户名. 2.开启Google Analytic ...
- 谷歌、腾讯、百度相应API批量获取地理位置坐标信息及其优缺点
目录: 申请ak 批量获取地理位置 目的:通过给定的地理位置名称(如:北京市海淀区上地十街十号),获取经纬度信息. 1.申请ak 以百度Geocoding API为例:http://lbsyun.ba ...
- 个人支付宝监控并自动获取交易记录对接系统API
我们都知道,支付宝支付API接口只有企业才能使用,但有一部分业务,可能我们不方便使用企业收款,但又想做到自动化,那怎么办呢 于是一个支付宝交易记录自动监控软件诞生了. 支付宝都有一个收款二维码,收款提 ...
- Spring Cloud Zuul API服务网关之请求路由
目录 一.Zuul 介绍 二.构建Spring Cloud Zuul网关 构建网关 请求路由 请求过滤 三.路由详解 一.Zuul 介绍 通过前几篇文章的介绍,我们了解了Spring Cloud ...
随机推荐
- ccflow_005.请假流程-傻瓜表单-审核组件模式
ccflow_005.请假流程-傻瓜表单-审核组件模式 ' 用审核组件演示各个流程应用 首先设置节点,填写请假单的 表单方案.选择内置傻瓜表单.我们之前创建的表单就回来了. 可以点击下面的设计傻瓜表单 ...
- 基于事件驱动机制,在Service Mesh中进行消息传递的探讨
翻译 | 宋松 原文 | https://www.infoq.com/articles/service-mesh-event-driven-messaging 关键点 当前流行的Service Mes ...
- 拓扑排序+DFS(POJ1270)
[日后练手](非解题) 拓扑排序+DFS(POJ1270) #include<stdio.h> #include<iostream> #include<cstdio> ...
- [USACO10FEB]购买巧克力Chocolate Buying 【假背包真贪心】 By cellur925
题目传送门 继续dp刷题计划,看到这道题,第一眼感觉不就是显然的完全背包嘛.把背包打完要开始填充数组大小的时候成为了mengbier,发现数据极大,达到了1e18.显然这不是一道平凡的背包题目. 于是 ...
- 关于C_Cpp的一些小结
## 某些函数的使用 1. printf / sprintf / fprintf printf:把格式字符串输出到标准输出(可重定向) sprintf:把格式字符串输出到指定字符串中,参数比print ...
- About set HDU - 4680
https://vjudge.net/problem/HDU-4680 一直想写,终于写完了... 要点: 这个set不需要去重 操作4的做法就是暴力枚举取的数(最开始两个取set中最小两个,设这次取 ...
- sql基础语法-联接查询
交叉联接 1.不带where条件的,将返回两个表的 行乘积 select c.*, e.* from Sales.Customers c cross join hr.Employees e 2.带wh ...
- Hadoop调度框架
大数据协作框架是一个桐城,就是Hadoop2生态系统中几个辅助的Hadoop2.x框架.主要如下: 1,数据转换工具Sqoop 2,文件搜集框架Flume 3,任务调度框架Oozie 4,大数 ...
- 动手实现 Redux(二):抽离 store 和监控数据变化
上一节 的我们有了 appState 和 dispatch: let appState = { title: { text: 'React.js 小书', color: 'red', }, conte ...
- js 判断客户端系统
function detectOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.platform == " ...