Azure 认知服务 (5) 计算机视觉API - 使用C#代码实现读取图片中的文字(OCR)功能-阿里云开发者社区

开发者社区> zting科技> 正文

Azure 认知服务 (5) 计算机视觉API - 使用C#代码实现读取图片中的文字(OCR)功能

简介:
+关注继续查看

 《Windows Azure Platform 系列文章目录

 

  在笔者之前的文章:Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)

  介绍了使用用户界面,在海外的Windows Azure认知服务的读取图片功能。

 

  在本章,笔者会介绍如何通过国内由世纪互联运维的Azure China,使用C#代码,实现实现读取图片中的文字(OCR)功能。  

  

  我们需要准备:

  1.Azure China账户

  2.计算机视觉API的API Key

  3.分析图片的URL: https://leizhangstorage.blob.core.chinacloudapi.cn/azureblog/ocr.jpg

 

  我们现在开始正文

  1.我们可以访问:https://dev.cognitive.azure.cn/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fc

  可以看到最下面提供不同的开发语言Code Sample

  

 

  2.我们复制出C# Code,这是一个Windows Console

  根据注释的内容,修改变量

  (1) API Key

  (2) JPG图片URL

  代码如下:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http.Headers;
using System.Web;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            MakeRequest();
            Console.WriteLine("Hit ENTER to exit...");
            Console.ReadLine();
        }

        static async void MakeRequest()
        {
            var client = new HttpClient();
            var queryString = HttpUtility.ParseQueryString(string.Empty);

            // Request headers
            // 这里输入API Key
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");

            // Request parameters
            queryString["language"] = "unk";
            queryString["detectOrientation "] = "true";
            var uri = "https://api.cognitive.azure.cn/vision/v1.0/ocr?" + queryString;

            HttpResponseMessage response;

            // 这里输入使用的jpg图片路径
            string s = @"{""url"":" + @"""https://leizhangstorage.blob.core.chinacloudapi.cn/azureblog/ocr.jpg""}";

            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes(s);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response = await client.PostAsync(uri, content);

                var contents = await response.Content.ReadAsStringAsync();
            }
        }
    }
}
复制代码

 

 本文转自Azure Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/7267764.html,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
实时计算账号管理的功能有哪些?
本文为您介绍实时计算账号模型、主子账号管理和账号安全验证功能。
468 0
代码覆盖率计算利器:DotCover的使用(含Manual Test)
因为某项目的白盒单元测试做的不是很好,而QA又提出了非常高的代码覆盖率移行标准,不得以开始调研能覆盖手工测试(Mannual Test)的覆盖率工具,加上一些最基础的条件,该工具必须满足如下三点: 1:能计算白盒单元测试覆盖率; 2:能计算黑盒手工测试覆盖率; 3:支持MSTest框架; 第一个自然想到的就是NCover,没错,它肯定满足这三个条件,它有一个满足21天使用的Trial版本可以用,但是,商业版本的价格也是惊人的: NCover Code Central$ 2,298NCover Desktop$ 658NCover Collector$ 448 很多刀刀。
914 0
iOS网络编程之四——请求类NSURLRequest使用详解
iOS网络编程之四——请求类NSURLRequest使用详解
18 0
一文让你秒懂批量计算的功能特性
用户使用工具(如 SDK,命令行工具等)向 BatchCompute 提交作业,BatchCompute 使用用户指定的镜像(如:ubuntu)启动虚拟机(VM), 在虚拟机中运行用户程序, 运行完成后释放虚拟机(VM)。
536 0
艾伟也谈项目管理,只有好代码的项目能成功吗?
  Simon Brown,集开发者、架构师及作家于一身,他认为成功的项目需要的不仅仅是好代码。在他的演讲《好代码是不够的》中,Brown讨论了项目成功所需的所有元素,从前期设计到操作文档。   Brown认为好代码是一个好的开始,但要取得成功,人们需要知道要构建什么、要发布什么以及它可以运作起来。
775 0
+关注
3550
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载