Python ImageGrab和OpenCV

问题描述 投票:1回答:1

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

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 bit python 3.6

python opencv
1个回答
1
投票

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

cv2.namedWindow('window', cv2.WINDOW_KEEPRATIO)
© www.soinside.com 2019 - 2024. All rights reserved.