我使用的是OCR算法(基于tesseract),它很难识别某些字符。我已经通过创建自己的“后处理哈希表”部分地解决了这个问题,其中包括对字符。例如,由于文本只是数字,我发现如果文本中有Q
字符,那么它应该是9
。在
但是,我对6
和8
字符有一个更严重的问题,因为它们都被识别为B
。现在,既然我知道我在寻找什么(当我将图像转换为文本时),并且字符串相当短(6~8位数字),我想用6
和{
例如,OCR可以识别以下字符串:
L0B7B0B5
所以这里的每个B
可以是6
或{
现在我想生成一个如下所示的列表:
^{pr2}$所以这是一个三位数的二进制表,在这个例子中有8个选项。但是字符串中B
字符的数量可以不是3个(可以是任何数字)。在
我尝试过使用Pythonitertools
模块来实现以下功能:
list(itertools.product(*["86"] * 3))
结果如下:
[('8', '8', '8'), ('8', '8', '6'), ('8', '6', '8'), ('8', '6', '6'), ('6', '8', '8'), ('6', '8', '6'), ('6', '6', '8'), ('6', '6', '6')]
我想我以后可以用它来交换B
字符。但是,由于某些原因,我无法使itertools
在我的环境中工作。我假设这与我使用的Jython而不是纯Python有关。在
我很乐意听到关于如何完成这项任务的任何其他想法。也许有一个我没有想到的更简单的解决方案?在
itertools.product
接受可以使用的repeat
关键字:那么一个相当简洁的替换方法是使用string
^{pr2}$replace
方法执行一个缩减操作:另一种方法,使用
itertools
中的多个函数:这里是生成字符串的简单递归函数:-(它是一个伪代码)
相关问题 更多 >
编程相关推荐