Guest User

SpaceX stream telemetry grabber

a guest
Mar 17th, 2024
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | Source Code | 0 0
  1. from os import write
  2. import cv2
  3. import numpy as np
  4. import pyautogui
  5. import easyocr
  6. import pygetwindow as gw
  7. import torch
  8. from pynput import keyboard
  9. import time
  10.  
  11. start_x = -1
  12. start_y = -1
  13. end_x = -1
  14. end_y = -1
  15. writeFile = open("logData.csv", 'w')  
  16. reader = easyocr.Reader(['en'])
  17.  
  18. if torch.cuda.is_available():
  19.     print("CUDA is available on this system.")
  20. else:
  21.     print("CUDA is not available on this system.")
  22. print("Press s to save current mouse coord for screenshot box")
  23. print("then press e to save endpoint of screenshot box")
  24.  
  25. def get_open_windows():
  26.     # Get a list of all open windows
  27.     windows = gw.getAllWindows()
  28.    
  29.     # Extract window titles
  30.     window_titles = [window.title for window in windows]
  31.    
  32.     return window_titles
  33.  
  34. def extract_numbers_from_frame(frame):
  35.     global reader
  36.     # Convert frame to grayscale
  37.     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  38.    
  39.     # Perform text detection and extraction
  40.     try:
  41.         result = reader.readtext(gray)
  42.         # Extract the recognized text
  43.         return result[0][1]
  44.     except Exception as e:
  45.         return 0
  46.    
  47. def on_press(key):
  48.     global start_x, start_y, end_x, end_y, writeFile
  49.     if key.char == 's':
  50.          start_x, start_y = pyautogui.position()
  51.          print("got start of box")
  52.     if key.char == 'e':
  53.          end_x, end_y = pyautogui.position()
  54.          print("got end of box")
  55.          return False
  56.     return True
  57.    
  58.  
  59.  
  60. def grabScreenshot():
  61.     global start_x, end_x, start_y, end_y
  62.     while (end_x == -1):
  63.         pass
  64.     left, top = min(start_x, end_x), min(start_y, end_y)
  65.     width, height = abs(start_x - end_x), abs(start_y - end_y)
  66.     screenshot = pyautogui.screenshot(region=(left, top, width, height))
  67.     return screenshot
  68.  
  69. with keyboard.Listener(on_press=on_press) as listener:
  70.     listener.join()
  71.  
  72.  
  73.  
  74. startTime = time.time()
  75. writeFile.write("data,time\n")
  76. cv2.namedWindow('Data Log')
  77.  
  78.  
  79. while True:
  80.     screenshot = grabScreenshot()
  81.     logTime = time.time()
  82.     frame = cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR)
  83.     cv2.imshow('Data Log',frame)
  84.     numbers = extract_numbers_from_frame(frame)
  85.     entry = "".join([str(numbers),",",str(logTime-startTime)])
  86.     print(entry)
  87.     writeFile.write(entry)
  88.     writeFile.write("\n")
  89.     quitkey = cv2.waitKey(1)
  90.     if quitkey == ord('q'):
  91.          cv2.destroyAllWindows()
  92.          writeFile.close()
  93.          exit()
  94.  
Add Comment
Please, Sign In to add comment