OpenCV回调滞后



我在2015年15英寸的MacBook Pro上运行Python 3.4上的OpenCV 3。下面是一个说明我问题的最小示例:

import cv2 as cv
import numpy as np
def mouse_callback(event, x, y, flags, param):
    print("Callback!")
cv.namedWindow("Display")
cv.setMouseCallback("Display", mouse_callback)
cap = cv.VideoCapture(0)
while True:
    ret, frame = cap.read()
    cv.imshow("Display", frame)
    if cv.waitKey(1) == ord("q"):
        break

当我点击屏幕时,文本"Callback!"大约需要3秒钟才能出现在终端屏幕上。我不知道为什么我会看到这么多的滞后——我的笔记本电脑应该不会太差,以至于我甚至不能运行这个简单的脚本。

此外,当我降低网络摄像头的分辨率时,甚至当我用静止图像完全替换网络摄像头时,问题仍然存在。我用C++重写了一个类似的程序,C++OpenCV库也受到了这种滞后的影响。

关于如何减少或消除滞后,有什么建议吗?

试试这个:

import cv2 as cv
import numpy as np
def mouse_callback(event, x, y, flags, param):
    if event == cv.EVENT_LBUTTONDOWN:
        print("Callback!")
cv.namedWindow("Display")
cv.setMouseCallback("Display", mouse_callback)
cap = cv.VideoCapture(0)
while True:
    ret, frame = cap.read()
    cv.imshow("Display", frame)
    if cv.waitKey(1) == ord("q"):
        break

尽管这主要是其他方面的问题。也许你的网络摄像头分辨率太高。

所以也试试这个:

cap.set(3,640)
cap.set(4,480)

将上面的代码放在while循环之上并进行检查。

相关内容

  • 没有找到相关文章

最新更新