Как сделать скриншот в Python

Библиотека OpenCV

Снятие изображения с экрана может использоваться для построения систем искусственного интеллекта на базе компьютерного зрения, тренировки систем распознавания образов, тестирования и отладки соответствующих программных комплексов.

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

При создании программных комплексов автоматизированных систем управления, принимающих решения самостоятельно или собирающих аналитическую информацию на основании полученной графической информации, видео изображений, фотографий, графиков, анализа прямых трансляций, анализа интернет-ресурсов в реальном времени.

Для автоматизированного сбора и анализа больших данных без участия человека.

Устанавливаем библиотеки в системе:

pip install numpy
pip install pyautogui
pip install opencv-python
pip install pillow imutils

Импортируем библиотеки в коде:

import numpy as np
import pyautogui
import imutils
import cv2

Указываем размер, координаты нужной области и получаем снимок выделенной части экрана:

image = pyautogui.screenshot(region=(0,0, 300, 400))

Выводим снимок на экран:

image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR)
cv2.imshow(“Screenshot”, imutils.resize(image, width=600))

Сохраняем изображение на диск:

cv2.imwrite(“pic.png”, image)

Если нужно считать изображения с диска и вывести на экран:

image = cv2.imread(“pic.png”)
cv2.imshow(“Screenshot”, imutils.resize(image, width=600))
cv2.waitKey(0)

Если нужно найти координаты части изображения (совпадение) на экране:

position = pyautogui.locateOnScreen(image_fragment)
print(position)


или

position = pyautogui.locateOnScreen(‘image_fragment.png’)
print(position)


ПРИМЕЧАНИЕ

image_fragment – изображение в памяти
‘image_fragment.png’ – изображение в файле,
которое нужно найти на экране
и определить его координаты

position – координаты