内置 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、修改完成后保存,重新运行就可以。