找回密码
 立即注册
首页 资源区 代码 易语言OCR证件照文字识别

易语言OCR证件照文字识别

挠溃症 前天 18:28
  一.引言

文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技术的发展,文字识别技术已经成为信息管理、自动化办公和智能系统的关键组成部分。
二.简介

为了易于集成和使用,我们将文字识别OCR封装为DLL(动态链接库)。这种封装方式不仅保留了算法的性能优势,还提供了跨平台和跨语言的兼容性,目前支持编程语言如下:


  • C++
  • Python
  • 易语言
1.C++头文件

  1. <ol  ><li> </li><li> </li><li> </li><li>#ifndef __SN_OCR__H__</li><li>#define __SN_OCR__H__</li><li> </li><li>#include "windows.h"</li><li> </li><li> </li><li>//返回参数</li><li>typedef struct SN_STATU {</li><li> </li><li>        int code;                        //错误码,如果为 0 表示成功,否则表示错误号</li><li>        char message[4096];        //错误信息,如果为 "OK" 表示成功,否则返回错误信息</li><li> </li><li>}SN_STATU;</li><li> </li><li> </li><li>/*启动OCR文字识别服务</li><li>*</li><li>* 参数:</li><li>*        [in]  szOnnxFilePath:        设置 onnx 模型文件路径,如果设置为 NULL,默认和 DLL文件同级目录</li><li>*         [out] pResult:                        返回错误信息,参数pResult->code(错误码)如果为 0 表示成功,否则表示错误号;</li><li>*</li><li>* 返回值:成功返回0,失败返回错误号,详细错误信息请参考 pResult</li><li>*</li><li>*/</li><li>int WINAPI apiSNInitOCRServer(char* szOnnxFilePath, SN_STATU* pStatu);</li><li> </li><li> </li><li>/*创建OCR文字识别句柄</li><li>*</li><li>* 参数:</li><li>*        [in]  szKey:                卡密(购买卡密:https://shop.4yuns.com/links/7C9F16B7)</li><li>*         [in]  pOnnxFilePath:设置 onnx 模型文件路径,如果设置为 NULL,默认和 DLL文件同级目录</li><li>*         [out] pResult:                返回错误信息,参数pResult->code(错误码)如果为 0 表示成功,否则表示错误号;</li><li>*</li><li>* 返回值:成功返回句柄,失败返回NULL</li><li>*</li><li>*/</li><li>HANDLE WINAPI apiSNCreateOCRHandle(char* szKey, char* szOnnxFilePath, SN_STATU* pStatu);</li><li> </li><li> </li><li>/*获取OCR文字识别卡密到期时间</li><li>*</li><li>* 参数:</li><li>*        [in]  handle:                句柄(通过调用apiSNCreateOCRHandle得到)</li><li>*         [out] pResult:                返回错误信息,参数pResult->code(错误码)如果为 0 表示成功,否则表示错误号;</li><li>*</li><li>* 返回值:返回卡密到期时间,失败返回NULL,错误信息请查看参数 pResult->message</li><li>*</li><li>*/</li><li>char* WINAPI apiSNGetKeyExpiresTime(HANDLE handle, SN_STATU* pResult);</li><li> </li><li> </li><li>/*获取OCR文字识别结果(以json字符串形式返回)</li><li>*</li><li>* 参数:</li><li>*        [in]  handle:                        句柄(通过调用apiSNCreateOCRHandle得到)</li><li>*          [in]  szImageFilePath:        图片路径</li><li>*         [out] pResult:                        返回错误信息,参数pResult->code(错误码)如果为 0 表示成功,否则表示错误号;</li><li>*</li><li>* 返回值:返回OCR文字识别结果(以json字符串形式返回),失败返回NULL,错误信息请查看参数 pResult->message</li><li>*</li><li>*/</li><li>char* WINAPI apiSNGetOCRFromImage(HANDLE handle, char* szImageFilePath, SN_STATU* pStatu);</li><li> </li><li> </li><li>/*释放OCR文字识别句柄(释放内存)</li><li>*</li><li>* 参数:</li><li>*        [in] handle:                句柄(通过调用apiSNCreateOCRHandle得到)</li><li>*</li><li>* 返回值:返回 0 表示成功,其他值表示错误号;</li><li>*</li><li>*/</li><li>int WINAPI apiSNDestroyOCRHandle(HANDLE handle);</li><li> </li><li>#endif</li></ol><img  src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png" alt="" title="">
复制代码
2.C++调用dll接口

  1. <ol  ><li>.版本 2</li><li>.支持库 spec</li><li> </li><li>.程序集 窗口程序集_启动窗口</li><li> </li><li>.子程序 _启动子程序, 整数型</li><li> </li><li>_临时子程序 ()</li><li>返回 (0)</li><li> </li><li> </li><li>.子程序 _临时子程序</li><li>.局部变量 handle, 整数型</li><li>.局部变量 pResult, SN_STATU, 静态, , 返回错误信息,参数pResult.code(错误码)如果为 0 表示成功,否则表示错误号;</li><li>.局部变量 szOCRJson, 文本型, , , OCR识别结果 (json字符串);</li><li>.局部变量 szTime, 文本型, , , 卡密结束时间;</li><li> </li><li>' ---------------------------------------------------------------</li><li>' 1.启动 OCR 文字识别服务</li><li>' 其中卡密 SNKJe9xffLhdFY7r3TcffXq44ThDVcE3BQFQFfVA9VG4 仅用于测试,需要找开发人员重新购买,购买卡密连接:https://shop.4yuns.com/links/7C9F16B7</li><li>' ---------------------------------------------------------------</li><li>apiSNInitOCRServer (“SNOCR.onnx”, pResult)</li><li>调试输出 (pResult.code, 到文本 (pResult.message))</li><li>.如果真 (pResult.code < 0)</li><li>    调试输出 (“-----------程序结束-----------”)</li><li>    返回 ()</li><li> </li><li>.如果真结束</li><li>' 2.创建 OCR 文字识别句柄</li><li>handle = apiSNCreateOCRHandle (“SNKJe9xffLhdFY7r3TcffXq44ThDVcE3BQFQFfVA9VG4”, “SNOCR.onnx”, pResult)</li><li>调试输出 (pResult.code, 到文本 (pResult.message))</li><li>调试输出 (“句柄”, handle)</li><li>.如果真 (pResult.code < 0)</li><li>    调试输出 (“-----------程序结束-----------”)</li><li>    返回 ()</li><li>.如果真结束</li><li>' 3.识别 OCR 文字识别,返回 json 字符串</li><li>szOCRJson = apiSNGetOCRFromImage (handle, “d:\\22.png”, pResult)</li><li>调试输出 (到文本 (szOCRJson))</li><li> </li><li>' 4.识别 OCR 文字卡密到期时间</li><li>szTime = apiSNGetKeyExpiresTime (handle, pResult)</li><li>调试输出 (到文本 (szTime))</li><li>' 5.释放 OCR 文字识别内存</li><li>apiSNDestroyOCRHandle (handle)</li><li>调试输出 (“-----------程序结束-----------”)</li></ol><img  src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png" alt="" title="">
复制代码
三.效果演示

1.图片1

3.png


识别效果:
  1. <ol  ><li>{</li><li>        "type":        0,</li><li>        "task_id":        1,</li><li>        "err_code":        0,</li><li>        "ocr_result":        {</li><li>                "single_result":        [{</li><li>                                "left":        80.136589,</li><li>                                "top":        56.710590,</li><li>                                "right":        413.614105,</li><li>                                "bottom":        89.287964,</li><li>                                "str_utf8":        "包头市特种设备追溯平台",</li><li>                                "rate":        "0.981197"</li><li>                        }, {</li><li>                                "left":        171.293091,</li><li>                                "top":        99.701866,</li><li>                                "right":        329.740753,</li><li>                                "bottom":        120.792061,</li><li>                                "str_utf8":        "设备编码: 000001)",</li><li>                                "rate":        "0.970116"</li><li>                        }, {</li><li>                                "left":        81.693756,</li><li>                                "top":        274.142029,</li><li>                                "right":        229.766312,</li><li>                                "bottom":        295.966248,</li><li>                                "str_utf8":        "RFID 扫描区域",</li><li>                                "rate":        "0.992770"</li><li>                        }, {</li><li>                                "left":        50,</li><li>                                "top":        318.229156,</li><li>                                "right":        181.250000,</li><li>                                "bottom":        339.062500,</li><li>                                "str_utf8":        "投诉电话: 12365",</li><li>                                "rate":        "0.984698"</li><li>                        }, {</li><li>                                "left":        259.311310,</li><li>                                "top":        352.951111,</li><li>                                "right":        466.734924,</li><li>                                "bottom":        371.130615,</li><li>                                "str_utf8":        "包头市质量技术监督局制",</li><li>                                "rate":        "0.961233"</li><li>                        }],</li><li>                "width":        "500",</li><li>                "height":        "384"</li><li>        }</li><li>}</li></ol><img  src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png" alt="" title="">
复制代码
2.图片2

5.jpeg

识别效果:
  1. <ol  ><li>{</li><li>        "type":        0,</li><li>        "task_id":        1,</li><li>        "err_code":        0,</li><li>        "ocr_result":        {</li><li>                "single_result":        [{</li><li>                                "left":        451.128448,</li><li>                                "top":        110.489426,</li><li>                                "right":        1138.148070,</li><li>                                "bottom":        199.850967,</li><li>                                "str_utf8":        "中华人民共和国",</li><li>                                "rate":        "0.998395"</li><li>                        }, {</li><li>                                "left":        398.003052,</li><li>                                "top":        250.290588,</li><li>                                "right":        1189.906010,</li><li>                                "bottom":        370.648926,</li><li>                                "str_utf8":        "居民身份证",</li><li>                                "rate":        "0.999714"</li><li>                        }, {</li><li>                                "left":        333.586945,</li><li>                                "top":        605.802917,</li><li>                                "right":        1028.648680,</li><li>                                "bottom":        654.308594,</li><li>                                "str_utf8":        "签发机关上海市公安局徐汇分局",</li><li>                                "rate":        "0.998378"</li><li>                        }, {</li><li>                                "left":        334.754303,</li><li>                                "top":        712.041199,</li><li>                                "right":        539.191406,</li><li>                                "bottom":        752.816345,</li><li>                                "str_utf8":        "有效期限",</li><li>                                "rate":        "0.999937"</li><li>                        }, {</li><li>                                "left":        551.186523,</li><li>                                "top":        713.943665,</li><li>                                "right":        1061.341670,</li><li>                                "bottom":        754.974915,</li><li>                                "str_utf8":        "2005.10.08-202510.08",</li><li>                                "rate":        "0.985583"</li><li>                        }],</li><li>                "width":        "1313",</li><li>                "height":        "858"</li><li>        }</li><li>}</li></ol><img  src="https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png" alt="" title="">
复制代码
四.常见问题

1.是否支持多线程
  支持
五.更新日志



  • 2024.12.15 OCR 文字识别支持C++/Python/易语言
六.云盘源码下载



  • 百度云盘
  • 夸克云盘
  • 123云盘

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
1.png
2.png
4.png
6.png
您需要登录后才可以回帖 登录 | 立即注册