I am following this tutorial which interacts with the screen but is done for Windows OS since ImageGrab is not available in linux
import numpy as np
from PIL import ImageGrab
import cv2
import time
def screen_record():
last_time = time.time()
while(True):
# 800x600 windowed mode
printscreen = np.array(ImageGrab.grab(bbox=(0,40,800,640)))
print('loop took {} seconds'.format(time.time()-last_time))
last_time = time.time()
cv2.imshow('window',cv2.cvtColor(printscreen, cv2.COLOR_BGR2RGB))
if cv2.waitKey(25) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
Is there any alternative for ImageGrab or is better to switch OS?
Use the pyscreenshot library. It's the ImageGrab replacement for linux systems.
import pyscreenshot as ImageGrab
im = ImageGrab.grab()
im2 = np.asanyarray(im)
Hope this will work fine for your code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With