Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV回调滞后_Python_Opencv_Opencv3.0 - Fatal编程技术网

Python OpenCV回调滞后

Python OpenCV回调滞后,python,opencv,opencv3.0,Python,Opencv,Opencv3.0,我在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

我在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
当我点击屏幕时,文本回调!显示在终端屏幕上大约需要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循环上方并进行检查。

谢谢您的建议。不幸的是,这并没有解决我的问题。即使我用一个静止的黑色图像完全替换了网络摄像头,问题仍然存在。2011年初,我在macports安装的Opencv上运行了同样的MBP 15。回调运行正常。决议不是问题所在。如果您是从命令行编译,可能需要重新编译Opencv。我个人认为,如果我只是进行原型设计,就不需要对源代码进行编译;建议您尝试从Macports或自制设备安装opencv端口,只要适合您的设备即可。