如何检查图像是不是有任何文字?

Posted

技术标签:

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

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

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

期待您的宝贵意见!

【问题讨论】:

这能回答你的问题吗? Detect text area in an image using python and opencv 【参考方案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 尝试这些简单的解决方案。但大多数时候结果是不正确的,没有地方是正确的 您是否考虑过只切割相关的地方?这将有助于 tes-s-rac。例如,如果您需要表情包,请只保留按钮的一半 @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%

以上是关于如何检查图像是不是有任何文字?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查图片是不是存在于图库中?

如何在图像上写文字并保存

Swift UI 测试,如何检查单元格是不是有图像视图

如何在 Xcode 13 中使用图像文字

PHP检查文件是不是是图像[重复]

如何检查图像的特定像素是不是透明?