开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7406|回复: 51
收起左侧

[易语言纯源码] 上次那个TX通用文字识别OCR 我修改了下可以用了!

[复制链接]
结帖率:30% (6/20)
发表于 2022-5-3 16:21:30 | 显示全部楼层 |阅读模式   江西省九江市
分享源码
界面截图: -
是否带模块: -
备注说明: -
本帖最后由 shituo 于 2022-5-3 16:22 编辑

上次那个TX通用文字识别 我修改了下可以用了!


问题出在 文件上传上面 只要上传文件到你的 cos里面就可以识别了




TX云对象储存.e

1.03 MB, 下载次数: 281, 下载积分: 精币 -2 枚

点评

#在这里快速回复#   新疆维吾尔自治区乌鲁木齐市  发表于 2022-5-3 19:25

评分

参与人数 2好评 +2 精币 +1 收起 理由
jingyi11023995 + 1 标题是“通用文字识别”,文件名是“云对象储存”,到底是哪个?.
米米工具 + 1 + 1 支持开源~!感谢分享

查看全部评分


本帖被以下淘专辑推荐:

结帖率:0% (0/2)

签到天数: 3 天

发表于 2023-11-4 23:13:18 | 显示全部楼层   江苏省苏州市
.版本 2 .支持库 spec  .子程序 OCR_识别文字, 文本型, 公开, 返回识别到的字符串文本 .参数 X1, 整数型, , x1 整形数:区域的左上X坐标 .参数 Y1, 整数型, , y1 整形数:区域的左上Y坐标 .参数 X2, 整数型, , x2 整形数:区域的右下X坐标 .参数 Y2, 整数型, , y2 整形数:区域的右下Y坐标 .参数 color_format_颜色格式串, 文本型, ,  :颜色色偏比如"9f2e3f-000000"  .参数 相似度, 双精度小数型, , 0.1-1.0 .局部变量 指定边摸地址, 整数型, , , 4 .局部变量 指定边摸_X, 整数型, , , 8 .局部变量 指定边摸_Y, 整数型, , , 12 .局部变量 序号_2, 整数型, , , 16 .局部变量 查找X1, 整数型, , , 20 .局部变量 查找Y1, 整数型, , , 24 .局部变量 查找X2, 整数型, , , 28 .局部变量 查找Y2, 整数型, , , 32 .局部变量 临时查找X1, 整数型, , , 36 .局部变量 临时查找Y1, 整数型, , , 40 .局部变量 临时查找X2, 整数型, , , 44 .局部变量 临时查找Y2, 整数型, , , 48 .局部变量 欲查找文字数组, 文本型, , "0" .局部变量 二值化_图像, 字节集 .局部变量 图像宽度, 整数型 .局部变量 图像高度, 整数型 .局部变量 坐标存储内存OCR, 字节集 .局部变量 序号_1, 整数型 .局部变量 各类边摸统计字节集1, 字节集 .局部变量 各类边摸统计字节集2, 字节集 .局部变量 各类边摸统计字节集3, 字节集 .局部变量 各类边摸统计字节集4, 字节集 .局部变量 各类边摸统计字节集5, 字节集 .局部变量 各类边摸统计字节集6, 字节集 .局部变量 各类边摸统计字节集7, 字节集 .局部变量 各类边摸统计字节集8, 字节集 .局部变量 各类边摸统计字节集9, 字节集 .局部变量 各类边摸统计字节集10, 字节集 .局部变量 各类边摸统计字节集11, 字节集 .局部变量 存储坐标内存, 字节集 .局部变量 多点字节集, 字节集 .局部变量 点阵白点数量, 整数型 .局部变量 点阵序号, 整数型 .局部变量 获取边摸数量, 整数型 .局部变量 判断数量, 整数型 .局部变量 提取边摸数量, 整数型 .局部变量 边摸数量, 整数型 .局部变量 已存储坐标数量, 整数型 .局部变量 对比是否正确, 整数型 .局部变量 实际提取坐标字节集, 字节集 .局部变量 坐标排序_, 整数型 .局部变量 临时_intX, 整数型 .局部变量 临时_intY, 整数型 .局部变量 未比数据数量, 整数型 .局部变量 最后位置, 整数型 .局部变量 位置变量, 整数型 .局部变量 临时_intY_1, 整数型 .局部变量 临时_intY_2, 整数型 .局部变量 临时_intX_1, 整数型 .局部变量 临时_intX_2, 整数型 .局部变量 临时_点阵序号_1, 整数型 .局部变量 临时_点阵序号_2, 整数型 .局部变量 字节集地址, 整数型 .局部变量 临时_地址_1, 整数型 .局部变量 临时_地址_2, 整数型 .局部变量 总高度, 整数型 .局部变量 临时文本, 文本型 .局部变量 M, 整数型 .局部变量 原图像, 字节集  连续赋值 (0, 指定边摸地址, 指定边摸_X, 指定边摸_Y, 序号_2, 查找X1, 查找Y1, 查找X2, 查找Y2, 临时查找X1, 临时查找Y1, 临时查找X2, 临时查找Y2) .判断开始 (color_format_颜色格式串 = “”)     返回 (“”) .判断 (字库文件是否存在 = 假)     信息框 (“字库路径不正确 或 字库不存在 或 字库信息不正确,请先调用 设置字库路径 函数来定义字库的路径”, 0, “字库出现问题!Word library incorrect!”, )     返回 (“”) .默认  .判断结束 .如果真 (X1 > X2)     交换变量 (X1, X2) .如果真结束 .如果真 (Y1 > Y2)     交换变量 (Y1, Y2) .如果真结束 原图像 = 窗口截图 (全局窗口句柄, X1, Y1, X2, Y2) 二值化_图像 = 二值化图像 (原图像, color_format_颜色格式串, 相似度) 图像宽度 = 取字节集数据 (取字节集中间 (二值化_图像, 19, 4), #整数型, ) 图像高度 = 取字节集数据 (取字节集中间 (二值化_图像, 23, 4), #整数型, ) 坐标存储内存OCR = 取空白字节集 (图像宽度 × 图像高度 × 8) 各类边摸统计字节集1 = 取空白字节集 (1 × 8) 各类边摸统计字节集2 = 取空白字节集 (3 × 8) 各类边摸统计字节集3 = 取空白字节集 (7 × 8) 各类边摸统计字节集4 = 取空白字节集 (15 × 8) 各类边摸统计字节集5 = 取空白字节集 (31 × 8) 各类边摸统计字节集6 = 取空白字节集 (63 × 8) 各类边摸统计字节集7 = 取空白字节集 (127 × 8) 各类边摸统计字节集8 = 取空白字节集 (255 × 8) 各类边摸统计字节集9 = 取空白字节集 (511 × 8) 各类边摸统计字节集10 = 取空白字节集 (1023 × 8) 各类边摸统计字节集11 = 取空白字节集 (2047 × 8)  获取边摸数量 = 分类边摸数量1 (二值化_图像, 各类边摸统计字节集1, 各类边摸统计字节集2, 各类边摸统计字节集3, 各类边摸统计字节集4, 各类边摸统计字节集5, 各类边摸统计字节集6, 各类边摸统计字节集7, 各类边摸统计字节集8, 各类边摸统计字节集9, 各类边摸统计字节集10, 各类边摸统计字节集11) 存储坐标内存 = 取空白字节集 (获取边摸数量 × 4) 判断数量 = 分配内存地址位置1 (存储坐标内存, 各类边摸统计字节集1, 各类边摸统计字节集2, 各类边摸统计字节集3, 各类边摸统计字节集4, 各类边摸统计字节集5, 各类边摸统计字节集6, 各类边摸统计字节集7, 各类边摸统计字节集8, 各类边摸统计字节集9, 各类边摸统计字节集10, 各类边摸统计字节集11) 提取边摸数量 = 提取边摸坐标1 (二值化_图像, 各类边摸统计字节集1, 各类边摸统计字节集2, 各类边摸统计字节集3, 各类边摸统计字节集4, 各类边摸统计字节集5, 各类边摸统计字节集6, 各类边摸统计字节集7, 各类边摸统计字节集8, 各类边摸统计字节集9, 各类边摸统计字节集10, 各类边摸统计字节集11) .变量循环首 (1, 取数组成员数 (点阵具体信息_), 1, 点阵序号)     多点字节集 = 取空白字节集 (点阵具体信息_ [点阵序号].点阵宽度 × 点阵具体信息_ [点阵序号].点阵高度 × 8)  ' 申请内存     点阵白点数量 = 点阵转为多点 (点阵具体信息_ [点阵序号].点阵图像, 多点字节集, 取字节集长度 (多点字节集))     多点字节集 = 取字节集左边 (多点字节集, 点阵白点数量 × 8)      .判断开始 (点阵具体信息_ [点阵序号].点阵高度 = 1)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集1) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集1) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 2)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集2) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集2) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 3)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集3) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集3) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 4)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集4) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集4) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 5)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集5) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集5) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 6)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集6) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集6) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 7)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集7) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集7) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 8)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集8) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集8) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 9)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集9) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集9) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 10)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集10) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集10) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .判断 (点阵具体信息_ [点阵序号].点阵高度 = 11)         边摸数量 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集11) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8)         指定边摸地址 = 指针四字节到整数 (取变量数据地址 (各类边摸统计字节集11) + (点阵具体信息_ [点阵序号].点阵边摸编码 - 1) × 8 + 4)     .默认         到循环尾 ()     .判断结束       临时查找X1 = 点阵具体信息_ [点阵序号].左偏移     临时查找X2 = 点阵具体信息_ [点阵序号].点阵宽度 - 1 + 点阵具体信息_ [点阵序号].右偏移     临时查找Y2 = 点阵具体信息_ [点阵序号].点阵高度 - 1 + 点阵具体信息_ [点阵序号].向下偏移      .变量循环首 (0, 边摸数量 - 1, 1, 序号_2)         置入代码 ({ 139, 93, 240, 107, 219, 4, 3, 93, 252, 184, 0, 0, 0, 0, 102, 139, 3, 137, 69, 248, 131, 195, 2, 184, 0, 0, 0, 0, 102, 139, 3, 137, 69, 244, 139, 69, 248, 43, 69, 220, 137, 69, 236, 139, 69, 244, 137, 69, 232, 139, 69, 248, 3, 69, 212, 137, 69, 228, 139, 69, 244, 3, 69, 208, 137, 69, 224 })         .如果 (查找X1 ≥ 0 且 查找Y1 ≥ 0 且 查找X2 < 图像宽度 且 查找Y2 < 图像高度 且 查找X2 ≥ 0 且 查找Y2 ≥ 0 且 查找X1 < 图像宽度 且 查找Y1 < 图像高度)          .否则             到循环尾 ()         .如果结束         对比是否正确 = 边摸坐标对比 (二值化_图像, 多点字节集, 坐标存储内存OCR, 已存储坐标数量, 点阵白点数量, 指定边摸_X, 指定边摸_Y, 查找X1, 查找Y1, 查找X2, 查找Y2, 点阵具体信息_ [点阵序号].点阵白点数量, 点阵序号)     .变量循环尾 () .变量循环尾 ()   .如果真 (已存储坐标数量 = 0)     返回 (“”) .如果真结束 实际提取坐标字节集 = 取字节集左边 (坐标存储内存OCR, 已存储坐标数量 × 8) 字节集地址 = 取变量数据地址 (实际提取坐标字节集)  ' 目前先采用 冒泡排序算法需要排列两次,千分之一的可能 会有排列乱序,等有时间了换成 高通排序算法 排列一次 ' -----------------------------------------------------------------------------------第一次 自定义字体坐标排列 未比数据数量 = 已存储坐标数量  ' 第一行排序比较所有数 .判断循环首 (未比数据数量 > 0)     最后位置 = 0     .变量循环首 (1, 未比数据数量 - 1, 1, 位置变量)          临时_地址_1 = 字节集地址 + (位置变量 - 1) × 8         临时_intX_1 = 取字节集数据 (实际提取坐标字节集, #短整数型, (位置变量 - 1) × 8 + 1)         临时_intY_1 = 取字节集数据 (实际提取坐标字节集, #短整数型, (位置变量 - 1) × 8 + 1 + 2)         临时_点阵序号_1 = 取字节集数据 (实际提取坐标字节集, #整数型, (位置变量 - 1) × 8 + 1 + 2 + 2)          临时_地址_2 = 字节集地址 + 位置变量 × 8         临时_intX_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 位置变量 × 8 + 1)         临时_intY_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 位置变量 × 8 + 1 + 2)         临时_点阵序号_2 = 取字节集数据 (实际提取坐标字节集, #整数型, 位置变量 × 8 + 1 + 2 + 2)          .如果真 (临时_intY_1 > 临时_intY_2)             双字节数据写到地址 (临时_地址_1, 临时_intX_2)             双字节数据写到地址 (临时_地址_1 + 2, 临时_intY_2)             四字节数据写到地址 (临时_地址_1 + 4, 临时_点阵序号_2)              双字节数据写到地址 (临时_地址_2, 临时_intX_1)             双字节数据写到地址 (临时_地址_2 + 2, 临时_intY_1)             四字节数据写到地址 (临时_地址_2 + 4, 临时_点阵序号_1)             最后位置 = 位置变量          .如果真结束        .变量循环尾 ()     未比数据数量 = 最后位置  ' 下一行排序从第一个数开始到上次排序的最后被改变的位数 .判断循环尾 () ' -----------------------------------------------------------------------------------第二次 自定义字体坐标排列 未比数据数量 = 已存储坐标数量  ' 第一行排序比较所有数 .判断循环首 (未比数据数量 > 0)     最后位置 = 0     .变量循环首 (1, 未比数据数量 - 1, 1, 位置变量)          临时_地址_1 = 字节集地址 + (位置变量 - 1) × 8         临时_intX_1 = 取字节集数据 (实际提取坐标字节集, #短整数型, (位置变量 - 1) × 8 + 1)         临时_intY_1 = 取字节集数据 (实际提取坐标字节集, #短整数型, (位置变量 - 1) × 8 + 1 + 2)         临时_点阵序号_1 = 取字节集数据 (实际提取坐标字节集, #整数型, (位置变量 - 1) × 8 + 1 + 2 + 2)          临时_地址_2 = 字节集地址 + 位置变量 × 8         临时_intX_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 位置变量 × 8 + 1)         临时_intY_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 位置变量 × 8 + 1 + 2)         临时_点阵序号_2 = 取字节集数据 (实际提取坐标字节集, #整数型, 位置变量 × 8 + 1 + 2 + 2)          .如果真 (临时_intY_1 ≤ 临时_intY_2)             .如果真 (临时_intY_1 + 点阵具体信息_ [临时_点阵序号_1].点阵高度 + 点阵具体信息_ [临时_点阵序号_1].向下偏移 > 临时_intY_2)                 .如果真 (临时_intX_1 > 临时_intX_2)                     双字节数据写到地址 (临时_地址_1, 临时_intX_2)                     双字节数据写到地址 (临时_地址_1 + 2, 临时_intY_2)                     四字节数据写到地址 (临时_地址_1 + 4, 临时_点阵序号_2)                      双字节数据写到地址 (临时_地址_2, 临时_intX_1)                     双字节数据写到地址 (临时_地址_2 + 2, 临时_intY_1)                     四字节数据写到地址 (临时_地址_2 + 4, 临时_点阵序号_1)                     最后位置 = 位置变量                 .如果真结束              .如果真结束          .如果真结束      .变量循环尾 ()     未比数据数量 = 最后位置  ' 下一行排序从第一个数开始到上次排序的最后被改变的位数 .判断循环尾 () 临时文本 = “” .变量循环首 (0, 已存储坐标数量 - 1, 1, 坐标排序_)     临时_intX_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 坐标排序_ × 8 + 1)     临时_intY_2 = 取字节集数据 (实际提取坐标字节集, #短整数型, 坐标排序_ × 8 + 1 + 2)     临时_点阵序号_2 = 取字节集数据 (实际提取坐标字节集, #整数型, 坐标排序_ × 8 + 1 + 2 + 2)     临时文本 = 临时文本 + 点阵具体信息_ [临时_点阵序号_2].点阵名称文本 .变量循环尾 () 返回 (临时文本)
回复 支持 反对

使用道具 举报

结帖率:90% (57/63)

签到天数: 1 天

发表于 2023-7-23 22:02:55 | 显示全部楼层   陕西省咸阳市
回复 支持 反对

使用道具 举报

结帖率:90% (57/63)

签到天数: 1 天

发表于 2023-7-23 22:01:54 | 显示全部楼层   陕西省咸阳市
回复 支持 反对

使用道具 举报

发表于 2023-2-7 15:19:48 | 显示全部楼层   湖南省长沙市
谢谢分享呀
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 7 天

发表于 2023-2-7 13:25:09 | 显示全部楼层   山东省青岛市
不知所以啊。。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2023-1-29 15:03:47 | 显示全部楼层   四川省绵阳市
回复 支持 反对

使用道具 举报

发表于 2023-1-2 11:27:42 | 显示全部楼层   河南省开封市
ddddddddddddddddddddddddddd
回复 支持 反对

使用道具 举报

发表于 2022-12-15 14:21:23 | 显示全部楼层   湖南省长沙市
没有支持库呀用不了!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2022-10-15 11:18:13 | 显示全部楼层   云南省昆明市
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表