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.12.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

tesseract_window_scanner-0.12-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file tesseract_window_scanner-0.12.tar.gz.

File metadata

File hashes

Hashes for tesseract_window_scanner-0.12.tar.gz
Algorithm Hash digest
SHA256 b8c6ce214514def8479ba54adf355dd0c9e33a47d0fa738b17ffc4ea1a4b4e43
MD5 e9dca86362a1afa1ed98d8dd39d5803e
BLAKE2b-256 61f6ad31f84a685dc2a6c5ccff7473c11c5e776d1b12d03fd3c908942f2e8909

See more details on using hashes here.

File details

Details for the file tesseract_window_scanner-0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for tesseract_window_scanner-0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 8b72c77eddf387c6c33a5abd9e6725c8bf877c758310993dccc1da00c1045501
MD5 c13afd2cb0382de49ab3f623f4be764b
BLAKE2b-256 c921f0f706ea9b1df1897d914f146f98373eaa58a43b4c685d5fbc4f2b85bf1c

See more details on using hashes here.

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