IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity实现OCR文字识别功能 -> 正文阅读

[游戏开发]Unity实现OCR文字识别功能

文章来源: 学习通http://www.bdgxy.com/

普学网http://www.boxinghulanban.cn/

智学网http://www.jaxp.net/

表格制作excel教程http://www.tpyjn.cn/

学习通http://www.tsgmyy.cn/


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

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

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

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

在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;
}

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

封装调用函数:

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

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

/// &lt;summary&gt;
/// 通用文字识别
/// &lt;/summary&gt;
/// &lt;param name="bytes"&gt;图片字节数据&lt;/param&gt;
/// &lt;param name="language"&gt;识别语言类型 默认CHN_ENG中英文混合&lt;/param&gt;
/// &lt;param name="detectDirection"&gt;是否检测图像朝向&lt;/param&gt;
/// &lt;param name="detectLanguage"&gt;是否检测语言,当前支持中、英、日、韩&lt;/param&gt;
/// &lt;param name="probability"&gt;是否返回识别结果中每一行的置信度&lt;/param&gt;
/// &lt;returns&gt;&lt;/returns&gt;
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&lt;string, object&gt;
        {
            { "language_type", language },
            { "detect_direction", detectDirection },
            { "detect_language", detectLanguage },
            { "probability", probability }
        };
        var response = client.GeneralBasic(bytes, options);
        GeneralOcr generalOcr = JsonUtility.FromJson&lt;GeneralOcr&gt;(response.ToString());
        return generalOcr;
    }
    catch (Exception error)
    {
        Debug.LogError(error);
    }
    return null;
}

}

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

测试图片:

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

以上就是Unity实现OCR文字识别功能的详细内容,更多关于Unity OCR文字识别的资料请关注菜鸟教程https://www.piaodoo.com/其它相关文章!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:58:07  更:2022-05-18 17:58:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 20:16:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码