异步/多线程枕头图像抓取60fps

时间:2016-11-06 00:59:41

标签: python opencv asynchronous pillow

我正在尝试做什么。

目前我正在使用PIL抓取我桌面的屏幕截图并以恒定循环显示图像。这会产生类似截图效果的视频。我的目的是分析用opencv拍摄的每张图像并显示操纵的结果。

我目前正在做什么。

目前,我有一个延迟1毫秒的循环,截取屏幕截图,然后通过opencv显示。不幸的是,抓取和分析图像需要一段时间并产生我正在寻找的效果,但帧速率较低,因为需要超过一毫秒的时间来抓取屏幕截图并显示它。

我在寻找什么。

我希望异步运行这个过程,以便我可以同时获得更平滑的帧速率。不幸的是,当我尝试在我的函数上使用Processthreading时,我会收到一条警告,说明必须从主线程中获取操作。

我怎样才能使波纹管代码异步/螺纹?

def getImage(bbox):
    while True:
        #Grab pil image
        pil_image = ImageGrab.grab(bbox=(bbox[0], bbox[1], bbox[2], bbox[3])).convert('RGB')

        #conver the image to something opencv can use
        image = cv2.cvtColor(numpy.array(pil_image), cv2.COLOR_RGB2BGR)

        #show the image
        cv2.imshow("image", image)

        #wait a millisecond so that the image displays
        cv2.waitKey(1)

错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'nextEventMatchingMask should only be called from the Main Thread!'

0 个答案:

没有答案