服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - Unity实现OCR文字识别功能

Unity实现OCR文字识别功能

2022-12-15 11:35CoderZ1010 C#

这篇文章主要介绍了通过Unity接入百度AI接口,实现OCR文字识别功能,文中的实现步骤讲解详细,对我们学习或工作有一定的参考价值,需要的可以了解一下

首先登陆百度开发者中心,搜索文字识别服务:

Unity实现OCR文字识别功能

创建一个应用,获取AppID、APIKey、SecretKey秘钥信息:

Unity实现OCR文字识别功能

Unity实现OCR文字识别功能

下载C# SDK,将AipSdk.dll动态库导入Unity:

Unity实现OCR文字识别功能

Unity实现OCR文字识别功能

本文以通用文字识别为例,查阅官方文档,以下是通用文字识别的返回数据结构:

Unity实现OCR文字识别功能

在Unity中定义相应的数据结构:

using System;

/// <summary>
/// 通用文字识别
/// </summary>
[Serializable]
public class GeneralOcr
{
  /// <summary>
  /// 图像方向 -1未定义 0正弦 1逆时针90度 2逆时针180度 3逆时针270度
  /// </summary>
  public int direction;
  /// <summary>
  /// 唯一的log id,用于问题定位
  /// </summary>
  public int log_id;
  /// <summary>
  /// 识别结果数,表示words_result的元素个数
  /// </summary>
  public int words_result_num;
  /// <summary>
  /// 定位和识别结果数组
  /// </summary>
  public string[] words_result;
  /// <summary>
  /// 行置信度信息
  /// </summary>
  public Probability probability;
}

/// <summary>
/// 行置信度信息
/// </summary>
[Serializable]
public class Probability
{
  /// <summary>
  /// 行置信度平均值
  /// </summary>
  public int average;
  /// <summary>
  /// 行置信度方差
  /// </summary>
  public int variance;
  /// <summary>
  /// 行置信度最小值
  /// </summary>
  public int min;
}

下面是调用时传入的相关参数:

Unity实现OCR文字识别功能

封装调用函数:

using System;
using System.Collections.Generic;
using UnityEngine;

public class OCR 
{
  //以下信息于百度开发者中心创建应用获取
  private const string appID = "";
  private const string apiKey = "";
  private const string secretKey = "";

  /// <summary>
  /// 通用文字识别
  /// </summary>
  /// <param name="bytes">图片字节数据</param>
  /// <param name="language">识别语言类型 默认CHN_ENG中英文混合</param>
  /// <param name="detectDirection">是否检测图像朝向</param>
  /// <param name="detectLanguage">是否检测语言,当前支持中、英、日、韩</param>
  /// <param name="probability">是否返回识别结果中每一行的置信度</param>
  /// <returns></returns>
  public static GeneralOcr General(byte[] bytes, string language = "CHN_ENG", bool detectDirection = false, bool detectLanguage = false, bool probability = false)
  {
      var client = new Baidu.Aip.Ocr.Ocr(apiKey, secretKey);
      try
      {
          var options = new Dictionary<string, object>
          {
              { "language_type", language },
              { "detect_direction", detectDirection },
              { "detect_language", detectLanguage },
              { "probability", probability }
          };
          var response = client.GeneralBasic(bytes, options);
          GeneralOcr generalOcr = JsonUtility.FromJson<GeneralOcr>(response.ToString());
          return generalOcr;
      }
      catch (Exception error)
      {
          Debug.LogError(error);
      }
      return null;
  }
}    

以上是传入图片字节数据调用接口的方式,也可以通过URL调用,只需将GeneralBasic换为重载函数GeneralBasicUrl:

Unity实现OCR文字识别功能

测试图片:

Unity实现OCR文字识别功能

OCR.General(File.ReadAllBytes(Application.dataPath + "/Picture.jpg"));

Unity实现OCR文字识别功能

以上就是Unity实现OCR文字识别功能的详细内容,更多关于Unity OCR文字识别的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/qq_42139931/article/details/122257969

延伸 · 阅读

精彩推荐
  • C#C#无损高质量压缩图片代码

    C#无损高质量压缩图片代码

    这篇文章主要为大家详细介绍了C#无损高质量压缩图片代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    边界流浪者9432022-01-05
  • C#Unity实现喷漆效果

    Unity实现喷漆效果

    这篇文章主要为大家详细介绍了Unity实现喷漆效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    无迹浪子10672022-09-23
  • C#解答“60k”大佬的19道C#面试题(上)

    解答“60k”大佬的19道C#面试题(上)

    这篇文章主要解答了“60k”大佬的19道C#面试题中的10道,文中的面试题比较小众,作者给了不错的答案,相信对你以后的面试有所帮助,感兴趣就来了解下...

    .NET骚操作12082022-09-09
  • C#C#语言基础——结构体和枚举类型全面解析

    C#语言基础——结构体和枚举类型全面解析

    下面小编就为大家带来一篇C#语言基础——结构体和枚举类型全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看...

    C#教程网7562021-12-01
  • C#C#双缓冲技术实例详解

    C#双缓冲技术实例详解

    这篇文章主要介绍了C#双缓冲技术,结合实例形式较为详细的分析了C#双缓冲的功能,实现技巧与相关注意事项,需要的朋友可以参考下...

    Alexander6372021-11-14
  • C#利用WCF双工模式实现即时通讯

    利用WCF双工模式实现即时通讯

    这篇文章主要介绍了利用WCF双工模式实现即时通讯的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    会长4152021-12-07
  • C#C#编程实现对象与JSON串互相转换实例分析

    C#编程实现对象与JSON串互相转换实例分析

    这篇文章主要介绍了C#编程实现对象与JSON串互相转换的方法,结合实例分析了在DoNet2.0与Donet3.5环境下实现对象与JSON转换的相关技巧,需要的朋友可以参考下...

    Jan.David11692021-11-02
  • C#C# List实现行转列的通用方案

    C# List实现行转列的通用方案

    本篇通过行转列引出了System.Linq.Dynamic,并且介绍了过滤功能,具有很好的参考价值。下面跟着小编一起来看下吧...

    焰尾迭12402021-12-28