Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from os import write
- import cv2
- import numpy as np
- import pyautogui
- import easyocr
- import pygetwindow as gw
- import torch
- from pynput import keyboard
- import time
- start_x = -1
- start_y = -1
- end_x = -1
- end_y = -1
- writeFile = open("logData.csv", 'w')
- reader = easyocr.Reader(['en'])
- if torch.cuda.is_available():
- print("CUDA is available on this system.")
- else:
- print("CUDA is not available on this system.")
- print("Press s to save current mouse coord for screenshot box")
- print("then press e to save endpoint of screenshot box")
- def get_open_windows():
- # Get a list of all open windows
- windows = gw.getAllWindows()
- # Extract window titles
- window_titles = [window.title for window in windows]
- return window_titles
- def extract_numbers_from_frame(frame):
- global reader
- # Convert frame to grayscale
- gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
- # Perform text detection and extraction
- try:
- result = reader.readtext(gray)
- # Extract the recognized text
- return result[0][1]
- except Exception as e:
- return 0
- def on_press(key):
- global start_x, start_y, end_x, end_y, writeFile
- if key.char == 's':
- start_x, start_y = pyautogui.position()
- print("got start of box")
- if key.char == 'e':
- end_x, end_y = pyautogui.position()
- print("got end of box")
- return False
- return True
- def grabScreenshot():
- global start_x, end_x, start_y, end_y
- while (end_x == -1):
- pass
- left, top = min(start_x, end_x), min(start_y, end_y)
- width, height = abs(start_x - end_x), abs(start_y - end_y)
- screenshot = pyautogui.screenshot(region=(left, top, width, height))
- return screenshot
- with keyboard.Listener(on_press=on_press) as listener:
- listener.join()
- startTime = time.time()
- writeFile.write("data,time\n")
- cv2.namedWindow('Data Log')
- while True:
- screenshot = grabScreenshot()
- logTime = time.time()
- frame = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)
- cv2.imshow('Data Log',frame)
- numbers = extract_numbers_from_frame(frame)
- entry = "".join([str(numbers),",",str(logTime-startTime)])
- print(entry)
- writeFile.write(entry)
- writeFile.write("\n")
- quitkey = cv2.waitKey(1)
- if quitkey == ord('q'):
- cv2.destroyAllWindows()
- writeFile.close()
- exit()
Add Comment
Please, Sign In to add comment