【问题标题】:Recording video with Python用 Python 录制视频
【发布时间】:2023-03-11 15:27:01
【问题描述】:

所以我一直在尝试使用位于 here 的代码在 python 中为树莓派项目拍摄和录制视频。我想使用 python,因为我与之交互的所有其他硬件都是用 Python 编写的。

我真的不明白如何停止这个脚本。没有多少输入任何字符组合对我来说停止了这个脚本。有什么建议吗?

所有建议更正后的最终代码(当输入输入到显示相机图片的屏幕时有效):

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

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

    #operations on the frame
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

    #display
    cv2.imshow('frame', gray)
    key =  cv2.waitKey(1000) & 0xFF
    print key
    if key == 27:
        break

cap.release()
cv2.destroyAllWindows()

【问题讨论】:

    标签: python opencv camera


    【解决方案1】:

    试试这个:

    key = cv2.waitKey(1000) & 0xFF
    

    查看“警告”here

    【讨论】:

    • 这仍然不适合我。我正在使用 2013 年末的 Macbook 专业人士之一。所以 64 位警告适用于我。顺便说一句,当我输入退出键时,屏幕上会出现“^[”符号。
    • 尝试在图像是活动窗口而不是终端时按一个键。
    • 噢……哇……这就是答案。我的打字都发生在终端内,而不是显示图片的实际显示窗口。您在显示窗口中打字的建议是正确的,对我来说更明智。谢谢。
    • 附带问题,是否可以同时接受来自终端和显示窗口的输入?
    【解决方案2】:

    如果你按下了所有的按钮并且相机没有停止捕捉,这只是意味着它永远不满足if语句中的条件,因此它不会退出循环break

    您可以做的是分配一个特定的键来停止捕获。如果您查看this 问题中的代码,您可以看到 Mike 已将 ESCAPE 键(ASCII 码 27)指定为将他带出循环的键。

    【讨论】:

    • 我刚刚试过了,它仍然没有停止。我正在通过 mac 上的终端运行它,这可能与此有关吗?
    • @K.Shores 嗯...如何在分配后尝试打印键的值,这应该告诉您是否甚至检测到按键。
    • 它不断打印-1。在我输入一个值后,它不会打印该值。
    猜你喜欢
    • 2014-04-11
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多