Python ImageGrab和OpenCV

时间:2017-12-28 14:32:12

标签: python opencv

当我运行以下代码时,它会打开一个具有适当尺寸的新窗口,它会正确显示屏幕......但它会在顶部和内部打开新窗口。

import numpy as np
from PIL import ImageGrab
import cv2

while(True):
    printscreen_pil = ImageGrab.grab(bbox = (0, 40, 400, 340))
    printscreen_numpy = np.array(printscreen_pil.getdata(), dtype = 
'uint8').reshape((printscreen_pil.size[1], printscreen_pil.size[0], 3))
    cv2.imshow('window', printscreen_numpy)
    if cv2.waitKey(25) & 0xFF == ord('q'):
        cv2.destroyAllWindows()
        break

系统是Windows 10,64位 python 3.6

1 个答案:

答案 0 :(得分:1)

你需要在while之前创建一个namedWindow。并使用名称(第一个参数)来显示图像,它将始终在同一窗口中显示图像。

cv2.namedWindow('window', cv2.WINDOW_KEEPRATIO)