提取某种颜色的文本,忽略其余部分

时间:2019-04-24 22:22:42

标签: python python-tesseract

enter image description here我有图片,需要该图片中的文字。只需要转换黄色的时间,而忽略背景文本。 我在Python中使用textract

我尝试将rgb转换为灰色,但仍然得到垃圾结果。它从背景读取数据

from PIL import Image
import pytesseract

image_file = Image.open('timeline_with_background_text.png')

image_file = image_file.convert('L') # convert image to black and white
image_file.save('question.png')
text = pytesseract.image_to_string(image_file, lang = 'eng',config='-psm 6')
print(text)

从图像中只需转换以黄色显示的时间,例如“ 34:53”

1 个答案:

答案 0 :(得分:0)

您可以使用python中的ImageMagick库执行此操作。

如果您的黄色文本始终是完全相同的黄色,也许您可​​以这样做。

首先,获取要保留的黄色的十六进制值。 (让我们说它的#ffff00)。

然后,使用图像魔术来将#ffff00颜色之外的所有颜色填充为黑色。那应该留下一张只显示您的时间的图像。

convert original.png -fill black +opaque '#ffff00' onlyTime.png

https://www.imagemagick.org/script/command-line-options.php#opaque

如果黄色并不总是完全相同,则可以尝试使用-fuzz选项。

https://www.imagemagick.org/script/command-line-options.php#fuzz


使用您提供的图像,我尝试了以下操作:

.\convert.exe C:\YLD2g.png -fill black -fuzz 20% +opaque '#c0861e' c:\onlyTime2.png

结果是:

onlyTime2

对于tesseract来说应该足够了