Skip to main content

OCR on screenshots with tesseract - Windows only

Project description

Scan screenshots with Tesseract

Video


Example 1 (screenshots from BlueStacks using ADB)

import cv2

import pandas as pd

import numpy as np

from time import sleep

from tesseract_window_scanner import pd_add_tesseract, sub_color_in_image, \

    substitute_colors_with_equal_rgb_values, draw_tesseract_results, get_tesseractdf,keyboard,ScreenShots





def activate_stop():

    global stop

    stop = True



tesseractpath = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

pd_add_tesseract(tesseractpath)

languages = "de+pt+deu"



sc2 = ScreenShots(

    hwnd=None, adb_path=r"C:\ProgramData\adb\adb.exe", adb_serial="localhost:5735"

)

quit_key = "q"

sc2.imshow_adb(sleep_time=0.05, quit_key=quit_key)

sleep(1)

sc2.enable_show_edited_images()

stop = False

keyboard.add_hotkey(quit_key, activate_stop)



showresults = True

while not stop:

    screenshot_window = sc2.imget_adb()



    # optional filter

    screenshot_window = sub_color_in_image(

        img=screenshot_window,

        conditions=(("r", ">", 200), "|", ("g", ">", 200), "|", ("b", ">", 200)),

        newcolor=(255, 255, 255),

    )

    df = get_tesseractdf(

        screenshot_window, lang=languages, drop_empty_strings=True, conf_thresh=60

    )

    tesserresults = draw_tesseract_results(

        dft=df, img=screenshot_window, conf_thresh=60

    )

    if showresults:

        sc2.show_edited_image(tesserresults)  # show the edited pic

    print(df[["text", "conf"]])

Example 2 (screenshots from BlueStacks using hwnd)

import cv2

import pandas as pd

import numpy as np

from time import sleep

from tesseract_window_scanner import pd_add_tesseract, sub_color_in_image, \

    substitute_colors_with_equal_rgb_values, draw_tesseract_results, get_tesseractdf,keyboard,ScreenShots



def activate_stop():

    global stop

    stop = True





tesseractpath = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

languages = "de+pt+deu"

pd_add_tesseract(tesseractpath)

sc2 = ScreenShots()

sc2.find_window_with_regex("[bB]lue[sS]tacks.*")

quit_key = "e"

sc2.imshow_hwnd(sleep_time=0.05, quit_key=quit_key)

sleep(1)

sc2.enable_show_edited_images()

stop = False

keyboard.add_hotkey(quit_key, activate_stop)



showresults = True

while not stop:

    screenshot_window = sc2.imget_hwnd()



    # screenshot_window=sub_color_in_image(img=screenshot_window, conditions=(('r' ,'>', 200) ,'|' ,('g' ,'>', 200), '|', ('b' ,'>', 200)), newcolor=(255,255,255))

    df = get_tesseractdf(

        screenshot_window, lang=languages, drop_empty_strings=True, conf_thresh=60

    )

    tesserresults = draw_tesseract_results(

        dft=df, img=screenshot_window, conf_thresh=60

    )

    if showresults:

        sc2.show_edited_image(tesserresults)  # show the edited pic

    print(df[["text", "conf"]])

Example 3 (screenshots from BlueStacks using hwnd without showing the results)

import cv2

import pandas as pd

import numpy as np

from time import sleep

from tesseract_window_scanner import pd_add_tesseract, sub_color_in_image, \

    substitute_colors_with_equal_rgb_values, draw_tesseract_results, get_tesseractdf,keyboard,ScreenShots





def activate_stop():

    global stop

    stop = True    



tesseractpath = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

languages = "de+pt+deu"

pd_add_tesseract(tesseractpath)

sc2 = ScreenShots()

sc2.find_window_with_regex("[bB]lue[sS]tacks.*")



quit_key = "x"

stop = False

keyboard.add_hotkey(quit_key, activate_stop)



while not stop:

    screenshot_window = sc2.imget_hwnd()



    screenshot_window = sub_color_in_image(

        img=screenshot_window,

        conditions=(("r", ">", 200), "|", ("g", ">", 200), "|", ("b", ">", 200)),

        newcolor=(255, 255, 255),

    )

    df = get_tesseractdf(

        screenshot_window, lang=languages, drop_empty_strings=True, conf_thresh=60

    )

    print(df[["text", "conf"]])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tesseract_window_scanner-0.11.tar.gz (6.2 kB view hashes)

Uploaded Source

Built Distribution

tesseract_window_scanner-0.11-py3-none-any.whl (8.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page