我正在使用以下代码实时从一个打开的应用程序中截取屏幕截图。我该如何运行detect.py,使其仅检测我截取的屏幕内容?谢谢。
我的屏幕截图代码
import cv2 as cvimport numpy as npimport numpy as npimport cv2from mss import mssfrom PIL import Imagebounding_box = {'top': 340, 'left': 800, 'width': 350, 'height': 400}sct = mss()while True: sct_img = sct.grab(bounding_box) scr_img = np.array(sct_img) #cv2.imshow('screen', scr_img) # display screen in box cv.imshow('Testing', scr_img) if (cv2.waitKey(1) & 0xFF) == ord('q'): cv2.destroyAllWindows() break
YoloV5 detect.py
目前它只能检测图像而不是我的实时屏幕截图
# PyTorch Hubimport torch# Modelmodel = torch.hub.load('ultralytics/yolov5', 'yolov5s')# Imagesdir = 'https://ultralytics.com/images/'imgs = [dir + f for f in ('zidane.jpg', 'bus.jpg')] # batch of images# Inferenceresults = model(imgs)results.print() # or .show(), .save()
预期结果:
回答:
只需将屏幕截图传递给模型:
import cv2 as cvimport numpy as npimport numpy as npimport cv2from mss import mssfrom PIL import Image# PyTorch Hubimport torch# Modelmodel = torch.hub.load('ultralytics/yolov5', 'yolov5s')bounding_box = {'top': 340, 'left': 800, 'width': 350, 'height': 400}sct = mss()while True: sct_img = sct.grab(bounding_box) scr_img = np.array(sct_img) #cv2.imshow('screen', scr_img) # display screen in box scr_img = model(scr_img) cv.imshow('Testing', scr_img) if (cv2.waitKey(1) & 0xFF) == ord('q'): cv2.destroyAllWindows() break