【问题标题】:OpenCV real-time camera image not movingOpenCV实时相机图像不动
【发布时间】:2020-10-11 13:26:27
【问题描述】:

我正在尝试运行最简单的脚本来实时查看笔记本电脑的摄像头。但不幸的是,在启动窗口显示后,我只显示了一个永远不会更新的框架。

import cv2
cap = cv2.VideoCapture(0)
while True:
    ret, img = cap.read()
    cv2.imshow('test', img)
    if cv2.waitKey(-1):
        break
cv2.destroyAllWindows()
cap.release()

我正在按照教程在 Windows 上安装它,并将它安装在单独的环境中,使用 pip 和下载的轮子。窗口显示 OK,并且显示来自相机的图像但静态。然而,程序并没有挂起,因为它等待一个键被按下并在之后正确关闭。

可能是什么原因?

【问题讨论】:

  • waitKey(-1) 等到您按下一个键...选择一个值 > 0

标签: python python-3.x windows opencv computer-vision


【解决方案1】:

试试这个:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Display the resulting frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

【讨论】:

    【解决方案2】:

    尝试使用这个循环:

    while True:
        ret, img = cap.read()
        cv2.imshow('test', img)
        keypressed = cv2.waitKey(30)
        if keypressed == ord('q'):
            break
    

    cv2.waitKey(delay)的参数是以毫秒为单位的延迟,返回值为按下的键:

    函数 waitKey 无限等待键事件(当?????≤0 时)或延迟毫秒,当它为正时。 [..]

    如果在指定的时间过去之前没有按下任何键,则返回按下的键的代码或 -1。

    见:https://docs.opencv.org/4.1.0/d7/dfc/group__highgui.html#ga5628525ad33f52eab17feebcfba38bd7

    【讨论】:

    • 我正在阅读该文档,这是真的,但直到现在你写了我才意识到我在第一次迭代中无限期地等待。再次感谢提示
    【解决方案3】:

    我希望这会奏效,这是一个快速简单的解决方案。

    您可以通过按 c 和 q 退出窗口来捕获图像

    import cv2
    
    cap = cv2.VideoCapture(0)
    count=0 
    while(True):
        ret, frame = cap.read()
        cv2.imshow("imshow",frame)
        key=cv2.waitKey(30)
        if key==ord('q'):
            break
        if key==ord('c'):
            count+=1
            cv2.imwrite('/home/user/Desktop/image'+str(count)+'.png', frame)
    
    cap.release()
    cv2.destroyAllWindows()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 2014-06-19
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多