【问题标题】:How to check if a image has any text or not?如何检查图像是否有任何文字?
【发布时间】:2020-09-20 13:27:27
【问题描述】:

我正在寻找一个简单的解决方案,如果图像文件中存在任何类型的英文文本,该解决方案将返回一个布尔值。我希望用它来检测模因。例如,应将以下文件检测为带有文本的图像。

我遇到过使用 OpenCV 的复杂机器学习技术,但我无法完全实现它。有没有更快、更简单、同样有效的解决方案?

期待您的宝贵意见!

【问题讨论】:

标签: python opencv computer-vision ocr


【解决方案1】:

opencv 和 pytessaract 确实有简单的方法,安装后你只需要使用几行就可以得到文本

pip install opencv-python

pip install pytesseract

import cv2
import pytessaract

img = cv2.imread('yourimage.jpeg')   

text = pytessaract.image_to_string(img)

Read Text from Image with One Line of Python Code

此外,如果您不喜欢使用 Google 视觉的第一种方式,请记住它会返回 Json,您将提取所需的内容。

https://cloud.google.com/vision/docs/ocr

Python Client for Google Cloud Vision

【讨论】:

  • 我已经准备好用 tesseract 尝试这些简单的解决方案。但大多数时候结果是不正确的,没有地方是正确的
  • 您是否考虑过只切割相关的地方?这将有助于 tessrac。例如,如果您需要表情包,请只保留按钮的一半
  • @SaiChivukula google vision 有很好的结果,所以你可能也想考虑一下
  • 谢谢。我会尝试裁剪掉不相关的部分。我也看过谷歌的愿景。它看起来很不错,但它是一种付费选择。
  • 尝试识别倒置的图片。深色背景上的浅色字母就是这种情况,如您的示例所示。
【解决方案2】:

我们可以使用pytesseract python 包从图像中获取文本。你可以像pip install pytesseract一样轻松安装

示例代码如下:

import cv2
import pytesseract
image = cv2.imread('test.jpeg')
text = pytesseract.image_to_string(image)
print(text)

这是我的示例图片

所以,输出应该是这样的

IS BITCOIN
GOING TO
$20.000
BY CHRISTMAS?

【讨论】:

  • 我已经准备好用 tesseract 尝试这些简单的解决方案。但大多数情况下,结果是不正确的,准确率远低于 90%
【解决方案3】:

您可以使用OpenCVpytesseract 来执行您的任务。

import cv2
import pytesseract
img = cv2.imread('YOUR_IMAGE_PATH')
text = pytesseract.image_to_string(img)
print(text)

【讨论】:

  • 您可以在这里找到更多详细信息。towardsdatascience.com/…
  • 我已经准备好用 tesseract 尝试这些简单的解决方案。但大多数情况下,结果是不正确的,准确率远低于 90%
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 2014-11-15
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多