-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Open
Description
问题情况
参考文档中的”Ⅴ. OCR概率输出“
通过set_ranges方法设置输出字符范围来限定返回的结果
我想使用我自定义的范围,去识别验证码并查看全字符表的概率,识别完又想使用作者的范围去识别验证码并查看全字符表的概率,但是如果使用set_ranges方法设置了识别的范围,后面又想取消识别范围使用作者的范围,目前没找到函数去除范围,下面是作者的概率输出使用说明
在使用”set_ranges“函数的时候,会分析传入参数charset_range,判断参数如果为int类型,请参考下表
参数值 | 意义 |
---|---|
0 | 纯整数0-9 |
1 | 纯小写英文a-z |
2 | 纯大写英文A-Z |
3 | 小写英文a-z + 大写英文A-Z |
4 | 小写英文a-z + 整数0-9 |
5 | 大写英文A-Z + 整数0-9 |
6 | 小写英文a-z + 大写英文A-Z + 整数0-9 |
7 | 默认字符库 - 小写英文a-z - 大写英文A-Z - 整数0-9 |

如果为string类型请传入一段不包含空格的文本,其中的每个字符均为一个待选词

我的分析,可能不太对,求大佬狂喷指正
我的分析,可能不太对,求大佬狂喷指正
我的分析,可能不太对,求大佬狂喷指正
看看代码
如果使用ocr.set_ranges('')这个函数识图去除识别范围,同时又想看全字符表的概率,那指定不行,因为ocr.set_ranges('')函数在最后会添加一个空文本到列表里面,导致识别范围不能完全为空【识别不出来的验证码就指向这个空值】,但是在ocr.classification这个函数第2663行中会去判断识别范围是否为空,就导致识别列表不为空,就无法去除识别范围
源码如下:

python判定:

解决方法
在ocr.classification这个函数第2663行中修改代码如下
if len(self.__charset_range) == 0 or self.__charset_range==['']:
代码截图如下:


Metadata
Metadata
Assignees
Labels
No labels