cv2.waitKey(0)
ожидает без таймаута, замените его на cv2.waitKey(time_in_msec)
.
Пример обновления с частотой около 10 Гц:
import numpy
import cv2
from PIL import ImageGrab
while True:
img = ImageGrab.grab(bbox=(765,155,1135,195))
img_np = numpy.array(img)
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY)
cv2.imshow("frame",frame)
cv2.waitKey(100)
cv2.destroyAllWindows()
См. waitKey dcomentation:
imshow
Отображает изображение в указанном окне.
Примечание. За этой функцией должна следовать функция waitKey, которая отображает изображение в течение указанных миллисекунд.
В противном случае оно не будет отображаться.
Например, waitKey (0) отобразит окно бесконечно, пока не будет нажата любая клавиша (она подходит для отображения изображения).
waitKey (25) будет отображать кадр в течение 25 мс, после чего дисплей будет автоматически закрыт.