Python 提取特定颜色的文本,忽略其他颜色
我有图像,需要从该图像的文本。只需要转换为黄色的时间,并且需要忽略背景文本。 我将textract与Python结合使用 我尝试将rgb转换为灰色,但仍然得到垃圾结果。它从后台读取数据Python 提取特定颜色的文本,忽略其他颜色,python,python-tesseract,Python,Python Tesseract,我有图像,需要从该图像的文本。只需要转换为黄色的时间,并且需要忽略背景文本。 我将textract与Python结合使用 我尝试将rgb转换为灰色,但仍然得到垃圾结果。它从后台读取数据 from PIL import Image import pytesseract image_file = Image.open('timeline_with_background_text.png') image_file = image_file.convert('L') # convert image
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”您可以使用python中的ImageMagick库来实现这一点 如果你的黄色文本总是完全相同的黄色,也许你可以这样做 首先,获取要保留的黄色的十六进制值。(比方说它是#ffff00) 然后,使用图像魔法将除#ffff00颜色外的任何颜色填充为黑色。这会给你留下一个只显示你时间的图像
convert original.png-填充黑色+不透明“#ffff00”onlyTime.png
如果黄色不总是完全相同,您可以尝试使用-fuzz
选项
使用您提供的图像,我尝试了以下操作:
\convert.exe C:\YLD2g.png-填充黑色-模糊20%+不透明'#c0861e'C:\onlyTime2.png
结果是:
这对tesseract来说应该足够好了想法是在将图像传递给tesseract之前应用橙色过滤器。。。你们尝试了什么?谢谢Ziptron,我尝试了多种黄色色调,但每次它将图像转换为黑色时,我都使用下面的命令
convert original.png-fill black+opaque'#c0861e'onlyTime2.png
convert original.png-fill black+opaque'#617614'onlyTime3.pngconvert original.png-fill black+opaque'#c19d65'onlyTime4.png
尝试包含fuzz参数(我发布的第二个链接)。可能很难得到黄色的确切值,但fuzz会让你选择与你认为最匹配的颜色相距一定距离的颜色。我能用TestRact做些什么吗?我刚刚试过\convert.exe C:\YLD2g.png-fill black-fuzz 20%+不透明“#c0861e”C:\onlyTime2.png
,它对我有效。