内置 ocr 识别引擎【客户端无法识别问题】
使用http://support.i-search.com.cn/article/1531145346828功能的过程中,发现设计器可以实现验证码的识别,但推送到客户端之后无法识别出验证码了。
解决办法:
1、进入 plugin\Com.Isearch.Func.Python\Lib\site-packages\pytesseract\ 目录下找到 pytesseract.py
2、打开文件,修改其中的 def run_tesseract 函数,如下如所示:
def run_tesseract(input_filename,
output_filename_base,
lang=None,
boxes=False,
config=None,
nice=0):
'''
runs the command:
`tesseract_cmd` `input_filename` `output_filename_base`
returns the exit status of tesseract, as well as tesseract's stderr output
'''
command = []
if not sys.platform.startswith('win32') and nice != 0:
command += ('nice', '-n', str(nice))
command += (tesseract_cmd, input_filename, output_filename_base)
if lang is not None:
command += ('-l', lang)
if config:
command += shlex.split(config)
if boxes:
command += ('batch.nochop', 'makebox')
print(command)
#proc = subprocess.Popen(command, stderr=subprocess.PIPE) 修改如下:
proc = subprocess.Popen(command)
#status_code, error_string = proc.wait(), proc.stderr.read() 修改如下:
status_code = proc.wait()
#proc.stderr.close() 注释此句
return status_code,''
3、修改完成后保存,重新运行就可以。
给你移动到经验分享栏目了哈,还有最好能标注下改动了哪些代码,没太看出来 😂,再说明下就更棒了 😆