menti words init

This commit is contained in:
2023-07-27 13:02:42 +02:00
parent eff65b3ca4
commit 8ded30d75a
2 changed files with 21 additions and 11 deletions

View File

@@ -2,6 +2,8 @@ import cv2 as cv
import numpy as np import numpy as np
import pydirectinput import pydirectinput
from nltk.corpus import words from nltk.corpus import words
from pytesseract import pytesseract
from utils import mse from utils import mse
from game_base_class import GameBase from game_base_class import GameBase
import random import random
@@ -18,6 +20,8 @@ class MentiWords(GameBase):
def __init__(self, overlay): def __init__(self, overlay):
super().__init__(overlay) super().__init__(overlay)
pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
self.observation = np.zeros((9, 9), dtype=int) self.observation = np.zeros((9, 9), dtype=int)
self.colors = [1, 2, 3, 4, 5, 6, 7, 8, 9] self.colors = [1, 2, 3, 4, 5, 6, 7, 8, 9]
@@ -120,23 +124,29 @@ class MentiWords(GameBase):
def get_current_board_state(self): def get_current_board_state(self):
screenshot = cv.imread("menti_words/screenshot.jpg") #screenshot = cv.imread("menti_words/screenshot.jpg")
#screenshot = self.capture_window.get_screenshot() screenshot = self.capture_window.get_screenshot()
screenshot = screenshot[870:1270, 1080:1480] screenshot = screenshot[870:1270, 1080:1480]
cv.imshow("screenshot", screenshot) #cv.imshow("screenshot", screenshot)
cv.waitKey(150) #cv.waitKey(150)
#continue #continue
for needle_key in self.needles.keys(): for needle_key in self.needles.keys():
# gray_needle = cv.cvtColor(self.needles[needle_key], cv.COLOR_BGR2GRAY) # gray_needle = cv.cvtColor(self.needles[needle_key], cv.COLOR_BGR2GRAY)
# thresh_needle = cv.threshold(gray_needle, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] # thresh_needle = cv.threshold(gray_needle, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1]
#rectangles = self.vision_stun.find(screenshot, self.needles[needle_key], 0.85, 56) rectangles = self.vision_stun.find(screenshot, self.needles[needle_key], 0.85, 1)
rectangles = self.vision_stun.find(screenshot, self.needles[needle_key], 0.95, 1 ,True, self.masks[needle_key]) #rectangles = self.vision_stun.find(screenshot, self.needles[needle_key], 0.95, 1 ,True, self.masks[needle_key])
if len(rectangles) == 0: if len(rectangles) == 0:
continue continue
points = self.vision_stun.get_click_points(rectangles) cropped1 = self.vision_stun.draw_display_picture(screenshot, rectangles, 10)
self.current_letters.append(needle_key)
self.letter_coords[needle_key] = points[0] text_1 = pytesseract.image_to_string(cropped1, lang='eng', config='--psm 6').strip()
if str.isalpha(text_1):
#cv.imshow("cropped1", cropped1)
#cv.waitKey(150)
points = self.vision_stun.get_click_points(rectangles)
self.current_letters.append(text_1)
self.letter_coords[text_1] = points[0]
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused': if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
return return

View File

@@ -246,11 +246,11 @@ class Vision:
return haystack_img return haystack_img
def draw_display_picture(self, haystack_img, rectangles): def draw_display_picture(self, haystack_img, rectangles, border = 0):
pic = None pic = None
for (x, y, w, h) in rectangles: for (x, y, w, h) in rectangles:
pic = haystack_img[y:y + h, x:x + w] pic = haystack_img[y-border:y + h +border, x-border:x + w + border]
# scale_percent = 500 # percent of original size # scale_percent = 500 # percent of original size
# width = int(pic.shape[1] * scale_percent / 100) # width = int(pic.shape[1] * scale_percent / 100)