python - 如何在 Tesseract 和 OpenCV 之间进行选择?

我最近遇到了Tesseract和 OpenCV .看起来 Tesseract 是一个成熟的 OCR 引擎,OpenCV 可以用作创建 OCR 应用程序/服务的框架。

我尝试在我的一些图像上使用 Tesseract,它的准确性似乎不错。后来偶然发现一个很简单的tutorial关于使用 OpenCV 使用 Python 执行 OCR 并印象深刻。几分钟后,我完成了系统的训练,它的准确性很好。但是,当然,采用这种方法意味着我需要使用大型训练集来广泛训练我的系统。

我的具体问题如下:

  • 如何在 Tesseract 和使用 OpenCV 构建自定义 OCR 应用之间进行选择?
  • 有用于不同语言的 Tesseract 训练数据集。 OpenCV 是否有类似的东西,所以我不必从头开始实现 OCR?
  • 哪个更适合商业应用?

有什么建议吗?

最佳答案

  • Tesseract 是一个 OCR 引擎。它由 Google 使用、开发和资助,专门用于从图像中读取文本、执行基本文档分割以及对特定图像输入(单个单词、行、段落、页面、有限字典等)进行操作。

  • 另一方面,OpenCV 是一个计算机视觉库,其中包含可让您执行某些特征提取和数据分类的功能。您可以创建一个简单的字母分割器和分类器来执行基本的 OCR,但它不是一个很好的 OCR 引擎(我之前在 Python 中从头开始制作了一个。对于偏离训练数据的输入确实不准确)。

如果您想基本了解 OCR 的难度,请尝试 OpenCV。 Tesseract 用于真实 OCR。

https://stackoverflow.com/questions/11489824/

相关文章:

python - 何时在 Django 中创建新应用程序(使用 startapp)?

python - 如何使用 Pandas 创建随机整数的 DataFrame?

python - 如何在 Python 中生成随机字符串?

python - 使用 pandas GroupBy.agg() 对同一列进行多个聚合

python - 我应该在 Python 3 中使用编码声明吗?

python - NumPy:同时 max() 和 min() 的函数

python - Python中numpy.random和random.random的区别

python - 生成没有相邻相等元素的列表的所有排列

python - Python 多处理模块的 .join() 方法到底在做什么?

python - Python字典中的线程安全