Как получить координаты предмета на скриншоте?

Ссылка скопирована
1 ответ

У меня есть код, который делает скриншот игры и ищет нна скриншоте апельсины, потом он должен наводить курсор мыши на эти апельсины, не нашёл полезную для себя информация, пожалуйста помогите

Код:

from PIL import ImageGrab import os import time import cv2 import numpy as np   def find_mana():     img = cv2.imread("screenshot.png")  # картинка, на которой ищем объект     gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # преобразуем её в серуюш     template = cv2.imread("orange.png",                           cv2.IMREAD_GRAYSCALE)  # объект, который преобразуем в серый, и ищем его на gray_img     w, h = template.shape[::-1]  # инвертируем из (y,x) в (x,y)      result = cv2.matchTemplate(gray_img, template, cv2.TM_CCOEFF_NORMED)     loc = np.where(result >= 0.5)     # рисует прямоугольник вокруг объекта     for pt in zip(*loc[::-1]):         cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 255, 0), 3)      cv2.imshow("img", img)  # выводит на экран результат   def main():     # делает скриншот игры     gameWindow = ()     im = ImageGrab.grab(gameWindow)     output = im.save(os.getcwd() + '\screenshot' + '.png', 'PNG')     print('nСкриншот сделан и сохранёнn')      find_mana()   if __name__ == '__main__':     main()

from PIL import ImageGrab import os import time import cv2 import numpy as np def find_mana(): img = cv2.imread("screenshot.png") # картинка, на которой ищем объект gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # преобразуем её в серуюш template = cv2.imread("orange.png", cv2.IMREAD_GRAYSCALE) # объект, который преобразуем в серый, и ищем его на gray_img w, h = template.shape[::-1] # инвертируем из (y,x) в (x,y) result = cv2.matchTemplate(gray_img, template, cv2.TM_CCOEFF_NORMED) loc = np.where(result >= 0.5) # рисует прямоугольник вокруг объекта for pt in zip(*loc[::-1]): cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 255, 0), 3) cv2.imshow("img", img) # выводит на экран результат def main(): # делает скриншот игры gameWindow = () im = ImageGrab.grab(gameWindow) output = im.save(os.getcwd() + '\screenshot' + '.png', 'PNG') print('nСкриншот сделан и сохранёнn') find_mana() if __name__ == '__main__': main()

https://imgur.com/a/7chEszv -скриншот игры

https://imgur.com/aCQ07vT -скриншот предмета

Дополнительно:

https://qna.habr.com/help/rules#3.9

  • Задание, а не вопрос.
    В чём конкретно проблема? Как искал (если вообще искал)?
    Потому что даже по запросу "питон навести курсор мыши" быстро выходишь на пакеты pyautogui и pywinauto.
  • Vindicar, вопрос в том, как мне не сворачивая игру найти предмет и курсором мыши передвинуться на этот предмет
  • Vindicar, команда для наводки есть, но я не понимаю как мне сделать, чтобы игра не сворачивалась и курсор мыши в ней наводился
  • Artem Mikhniuk, я выше написал - используй пакет pywinauto, например.
    Разберсть, как им пользоваться, проверь, реагирует ли вообще игра на действия этого пакета, потом дополни свой код, чтобы он не обводил объекты прямоугольниками, а кликал по ним.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Ирина WP Ответ

    Для получения координат предмета на скриншоте можно воспользоваться различными программами и инструментами. Вот несколько способов, которые могут помочь вам решить данную задачу:

    1. **Использование программ для редактирования изображений**:
    - Откройте снимок экрана с предметом в программе для редактирования изображений, такой как Photoshop, GIMP или Paint.
    - Используйте инструмент "Пипетка" или "Цветовой селектор", чтобы выбрать цвет пикселя на предмете.
    - Посмотрите на панели программы, где обычно отображаются координаты выбранного пикселя.

    2. **Использование онлайн инструментов**:
    - Существуют онлайн инструменты, которые позволяют загружать изображения и получать информацию о цветах и координатах пикселей. Например, сайты как What's My Screen Resolution или GetPixelColor.

    3. **Использование программного кода**:
    - Если вы хотите получить координаты пикселя с помощью программного кода, вы можете воспользоваться языками программирования, такими как Python или PHP.

       from PIL import Image
     
       # Открываем изображение
       img = Image.open('screenshot.png')
     
       # Получаем цвет пикселя по координатам (x, y)
       pixel_color = img.getpixel((x, y))
     
       print('Цвет пикселя:', pixel_color)

    from PIL import Image # Открываем изображение img = Image.open('screenshot.png') # Получаем цвет пикселя по координатам (x, y) pixel_color = img.getpixel((x, y)) print('Цвет пикселя:', pixel_color)

    Программный код позволяет получить координаты и цвет пикселя на снимке экрана.

    Надеюсь, что эти способы помогут вам получить необходимые координаты предмета на снимке экрана. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно