pytesseract在Windows平台上不起作用

时间:2018-06-30 03:41:05

标签: python windows ocr python-tesseract

我正在提供以下代码,该代码在linux平台上可完美运行,但在winodws平台上无法执行。它与pytesseract行为有关。

def imgps():
try:
    answer = filedialog.askdirectory(parent=root,
                                     initialdir=os.getcwd(), title="Please select a folder:")
    for fn in os.listdir(answer):
        if fn.endswith(".png") or fn.endswith(".jpg"):
            x = os.path.join(answer, fn)
            print(x) #loop breaks after this.
            rd = pytesseract.image_to_string(Image.open(x), lang='eng').replace('-\n', '') \
                .replace('\n', ' ').encode("ascii", 'ignore')
            tb9.insert('insert', rd)
            tb9.insert('insert', br)
        else:
            continue
except:
    messagebox.showinfo(message="No File to Display.")

单击按钮即可执行上述功能。我想我也不必给出其代码。帮助将不胜感激。我所看到的是,print命令先执行第一个文件,然后执行循环中断,这确认问题出在Windows中的pytesseract行为。帮助将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

最后,我必须自己找到解决方案。有这样的代码行。 需要在函数中添加pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'来告诉pytesseract使用tesseract的位置。仅当脚本和tesseract程序文件位于同一驱动器上时,设置环境变量才能起作用。如果它们在其他驱动器上,则可以解决此问题。