一.引言
文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技术的发展,文字识别技术已经成为信息管理、自动化办公和智能系统的关键组成部分。
二.简介
为了易于集成和使用,我们将文字识别OCR封装为DLL(动态链接库)。这种封装方式不仅保留了算法的性能优势,还提供了跨平台和跨语言的兼容性,目前支持编程语言如下:
1.C++头文件
typedef struct SN_STATU {
int WINAPI apiSNInitOCRServer(char* szOnnxFilePath, SN_STATU* pStatu);
HANDLE WINAPI apiSNCreateOCRHandle(char* szKey, char* szOnnxFilePath, SN_STATU* pStatu);
char* WINAPI apiSNGetKeyExpiresTime(HANDLE handle, SN_STATU* pResult);
char* WINAPI apiSNGetOCRFromImage(HANDLE handle, char* szImageFilePath, SN_STATU* pStatu);
int WINAPI apiSNDestroyOCRHandle(HANDLE handle);
2.C++调用dll接口
.局部变量 pResult, SN_STATU, 静态, , 返回错误信息,参数pResult.code(错误码)如果为 0 表示成功,否则表示错误号;
.局部变量 szOCRJson, 文本型, , , OCR识别结果 (json字符串);
.局部变量 szTime, 文本型, , , 卡密结束时间;
' ---------------------------------------------------------------
' 其中卡密 SNKJe9xffLhdFY7r3TcffXq44ThDVcE3BQFQFfVA9VG4 仅用于测试,需要找开发人员重新购买,购买卡密连接:https://shop.4yuns.com/links/7C9F16B7
' ---------------------------------------------------------------
apiSNInitOCRServer (“SNOCR.onnx”, pResult)
调试输出 (pResult.code, 到文本 (pResult.message))
调试输出 (“-----------程序结束-----------”)
handle = apiSNCreateOCRHandle (“SNKJe9xffLhdFY7r3TcffXq44ThDVcE3BQFQFfVA9VG4”, “SNOCR.onnx”, pResult)
调试输出 (pResult.code, 到文本 (pResult.message))
调试输出 (“-----------程序结束-----------”)
' 3.识别 OCR 文字识别,返回 json 字符串
szOCRJson = apiSNGetOCRFromImage (handle, “d:\\22.png”, pResult)
szTime = apiSNGetKeyExpiresTime (handle, pResult)
apiSNDestroyOCRHandle (handle)
调试输出 (“-----------程序结束-----------”)
三.效果演示
1.图片1
识别效果:
"str_utf8": "包头市特种设备追溯平台",
"str_utf8": "设备编码: 000001)",
"str_utf8": "投诉电话: 12365",
"str_utf8": "包头市质量技术监督局制",
2.图片2
识别效果:
"str_utf8": "签发机关上海市公安局徐汇分局",
"str_utf8": "2005.10.08-202510.08",
四.常见问题
1.是否支持多线程
支持
五.更新日志
- 2024.12.15 OCR 文字识别支持C++/Python/易语言
六.云盘源码下载