Пытаюсь научить нейронку наводится на ботов в игре кс2
Кое как написал код для анализа изображения и обучил нейронку распознавать врагов, однако навести мышь на них не получается, если оно не активно она спокойно наводит мышь куда нужно, но если окно активно нечего не происходит, как я могу это исправить?
import cv2
import numpy as np
from ultralytics import YOLO
from PIL import ImageGrab
from win32gui import FindWindow, GetWindowRect
import pyautogui
# Загрузка модели YOLO
model = YOLO('1tCsEnemiesDetector.pt')
# Получение прямоугольника окна игры
hwnd = FindWindow(None, 'Counter-Strike 2')
rect = GetWindowRect(hwnd)
region = (rect[0], rect[1], rect[2], rect[3]) # Исправлено
print("Region coordinates:", region)
# Масштабирование движения мыши
scale = 1.2
def move_mouse(x, y):
pyautogui.move(x, y) # Изменено на pyautogui.move
def main():
while True:
frame = np.array(ImageGrab.grab(bbox=region))
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
detections = model(frame)
display_frame(frame, detections)
def display_frame(frame, detections):
for results in detections:
if results.boxes is not None:
boxes = results.boxes.xyxy.cpu().numpy()
confidences = results.boxes.conf.cpu().numpy()
for i, box in enumerate(boxes):
x1, y1, x2, y2 = box
x1 += region[0]
y1 += region[1]
x2 += region[0]
y2 += region[1]
conf = confidences[i]
cls = results.names[int(results.boxes.cls[i])]
cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
cv2.putText(frame, f'{cls} {conf:.2f}', (int(x1), int(y1) - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# Направление смещения курсора от центра экрана к центру объекта
center_x = (x1 + x2) / 2
center_y = (y1 + y2) / 2
dx = int((center_x - frame.shape[1] / 2) * scale)
dy = int((center_y - frame.shape[0] / 2) * scale)
move_mouse(dx, dy)
cv2.imshow("frame", frame)
cv2.waitKey(1)
if __name__ == "__main__":
main()
Заранее спасибо за ответ