正方体和正方体有啥区别?
Posted
技术标签:
【中文标题】正方体和正方体有啥区别?【英文标题】:What is the difference between Pytesseract and Tesserocr?正方体和正方体有什么区别? 【发布时间】:2019-07-12 16:26:02 【问题描述】:我在 Windows 10 中使用 Python 3.6 并且已经安装了 Pytesseract,但我在 code Tesserocr 中找到了,顺便说一下我无法安装。有什么区别?
【问题讨论】:
除了 Tesserocr 中的 this answer 之外,不支持 Python 3.8(2020 年 4 月)。 【参考方案1】:根据我的经验,Tesserocr 比 Pytesseract 快得多。
Tesserocr 是围绕 Tesseract C++ API 的 Python 包装器。而 pytesseract 是 tesseract-ocr CLI 的包装器。
因此,您可以使用 Tesserocr 在开头或程序中加载模型,然后单独运行模型(例如在循环中处理视频)。
使用 pytesseract,每次调用 image_to_string
函数时,它都会加载模型并处理图像,因此视频处理速度较慢。
要安装 tesserocr,我只需在终端输入 pip install tesserocr
。
使用 tesserocr
import tesserocr
from PIL import Image
api = tesserocr.PyTessBaseAPI()
pil_image = Image.open('sample.jpg')
api.SetImage(pil_image)
text = api.GetUTF8Text()
要安装 pytesseract :pip install pytesseract
。
运行它:
import pytesseract
import cv2
image = cv2.imread('sample.jpg')
text = pytesseract.image_to_string(image)
【讨论】:
对于 pytesseract 不需要 PIL?cv2 has no imread member
,但我在 VSCode 中将鼠标悬停在 imread() 上时会收到信息。也许 cv2 没有安装,但我 pip
ed 它并且 python -c 'import cv2' 没有显示错误,只是没有。
另一个速度影响是 pytesseract(截至撰写此评论时)总是将图像写入磁盘而不是直接通过管道传输到 tesseract,请参阅github.com/madmaze/pytesseract/issues/172【参考方案2】:
Pytesseract 是 tesseract 二进制文件的 python“包装器”。它仅提供以下功能,以及指定标志 (man page):
get_tesseract_version
返回系统中安装的 Tesseract 版本。
image_to_string
将在图像上运行的 Tesseract OCR 的结果返回到字符串
image_to_boxes
返回包含已识别字符及其框边界的结果
image_to_data
返回包含框边界、置信度和其他信息的结果。需要 Tesseract 3.05+。有关更多信息,请查看 Tesseract TSV 文档
image_to_osd
返回包含方向和脚本检测信息的结果。
请参阅project description 了解更多信息。
另一方面,tesserocr 直接与 Tesseract 的 C++ API (APIExample) 接口,后者更加灵活/复杂并提供高级功能。
【讨论】:
【参考方案3】:pytesseract
只是 Python 的 tesseract-ocr
的绑定。所以,如果你想在python代码中使用tesseract-ocr
而不使用subprocess
或os
模块来运行命令行tesseract-ocr
命令,那么你使用pytesseract
。但是,要使用它,您必须安装 tesseract-ocr
。
你可以这样想。您需要安装 tesseract-ocr
,因为它是实际运行并执行 OCR 的程序。但是,如果您想从 python 代码中将其作为函数运行,您需要安装 pytesseract
包,它使您能够做到这一点。因此,当您运行pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')
时,它会使用提供的参数调用tesseract-ocr
。结果与运行tesseract test-european.jpg -l fra
相同。因此,您可以从代码中调用它,但最终,它仍然需要运行 tesseract-ocr
来执行实际的 OCR。
【讨论】:
非常感谢,现在我明白了...您对如何安装 tesserocr 有任何想法吗?如果您安装了它,您遵循的步骤是什么以及您使用的是什么版本的 Visual Studio。再次感谢您! 我已经为 Windows 安装了 tesseract,我需要为 python 安装 tesserocr 但它失败了... 然后从here下载想要的版本,然后运行pip install <downloaded-package>.whl
这里不回答什么是tesserocr,和tesseract-ocr不同,在***.com/a/56387215/4974791中解释过以上是关于正方体和正方体有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
第136篇:Three.js基础入门动画API:setInterval 与 requestAnimationFrame的区别