【问题标题】:Using pyautogui and opencv for screenshot使用 pyautogui 和 opencv 进行截图
【发布时间】:2016-06-27 18:02:50
【问题描述】:

我正在使用以下代码:

import cv2

import numpy as np

import pyautogui
import sys


img = pyautogui.screenshot()
cv2.imshow('image',img)

当我运行它时,它会告诉我

mat is not a numpy array, neither a scalar

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

【问题讨论】:

    标签: python opencv pillow


    【解决方案1】:

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

    我添加了以下代码以使其正常工作:

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

    【讨论】:

    • 为了获得相同的输出但更具表现力,您还可以做一些其他事情:imageObj = pyautogui.screenshot()cv_imageObj = cv2.cvtColor(numpy.array(imageObj), cv2.COLOR_RGB2BGR)
    猜你喜欢
    • 2014-07-30
    • 2019-12-24
    • 1970-01-01
    • 2016-06-11
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2018-06-20
    相关资源
    最近更新 更多