使用 pyautogui 和 opencv 截屏

Ric*_*ard 4 python opencv pillow

我正在使用以下代码:

import cv2

import numpy as np

import pyautogui
import sys


img = pyautogui.screenshot()
cv2.imshow('image',img)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它告诉我

mat is not a numpy array, neither a scalar
Run Code Online (Sandbox Code Playgroud)

我尝试使用 opencv 中的不同函数,似乎它们都返回相同的函数。我需要做什么才能截取屏幕截图然后在 Open CV 中使用它?

Ric*_*ard 7

经过一番挖掘,我意识到 pyautogui 函数正在使用 Pillow,它提供了一种必须适用于 opencv 的格式。

我添加了以下代码以使其有效:

open_cv_image = np.array(img) 
# Convert RGB to BGR 
open_cv_image = open_cv_image[:, :, ::-1].copy()
Run Code Online (Sandbox Code Playgroud)