python - Tesseract 没有拾取不同颜色的文本

标签 python ocr tesseract python-tesseract

我正在尝试制作一个程序,该程序将使用 tesseract 和 python 从屏幕截图中刮掉文本,并且我可以毫无问题地获取其中的一部分,但是有些文本颜色较浅并且不会被 tesseract 拾取。下面是我正在使用的图片示例:

enter image description here

我要获取图片顶部的文字,但不是下面的 3 个选项。

这是我用来抓取文本的代码

result = pytesseract.image_to_string(
            screen, config="load_system_dawg=0 load_freq_dawg=0")

        print("below is the total value scraped by the tesseract")
        print(result)

        # Split up newlines until we have our question and answers
        parts = result.split("\n\n")

        question = parts.pop(0).replace("\n", " ")
        q_terms = question.split(" ")
        q_terms = list(filter(lambda t: t not in stop, q_terms))
        q_terms = set(q_terms)

        parts = "\n".join(parts)
        parts = parts.split("\n")

        answers = list(filter(lambda p: len(p) > 0, parts))

当我有没有彩色背景的黑色纯文本时,我可以让 answers 数组由以下 3 个选项填充,但在这种情况下不是。有什么办法可以解决这个问题吗?

最佳答案

你错过了 binarization, or thresholding步。

在您的情况下,您可以简单地在灰度图像上应用二进制阈值。

这是 threshold = 177 的结果图像 enter image description here

Here1 you can learn more about Thresholding with opencv python library

关于python - Tesseract 没有拾取不同颜色的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48530331/

相关文章:

python - 如何将列表中的每个项目包装到其正确的列表中

opencv - 如何提取框架中文本的区域?

python - 在图像中应用智能阈值的方法

java - 在 mac 上通过 Eclipse 使用 tess4j、ghostscript 和 Java

c++ - 在 OpenCV 的 namedWindow 之前或之后初始化 Tesseract

python - Asterisk python agi 问题

python - 使用 3DES 和 CBC 破坏我的加密数据的前 8 个字节

opencv - OpenCV Python中OCR的90度斜度校正

python - os.path.abspath的一个 super 奇怪的bug

vb.net - 如何在 Visual Basic 中实现 Tesseract OCR?