如何检查图像是不是有任何文字?
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】:您可以使用OpenCV
和pytesseract
来执行您的任务。
import cv2
import pytesseract
img = cv2.imread('YOUR_IMAGE_PATH')
text = pytesseract.image_to_string(img)
print(text)
【讨论】:
您可以在这里找到更多详细信息。towardsdatascience.com/… 我已经准备好用 tesseract 尝试这些简单的解决方案。但大多数情况下,结果是不正确的,准确率远低于 90%以上是关于如何检查图像是不是有任何文字?的主要内容,如果未能解决你的问题,请参考以下文章