正方体和正方体有啥区别?

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 没有安装,但我 piped 它并且 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而不使用subprocessos模块来运行命令行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的区别

在flash里面形状动画和补间动画有啥区别?

cesium 和 Three.js有啥区别,以及二者与WebGL 的关系

border-radius:50%和100%的区别

OpenGL+OpenCV实现立方体贴图

平面展开最短路径之长方体