menti words init
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user