gpt4 book ai didi

python - 使用 Python/Linux 读取网络摄像头的选项

转载 作者:太空狗 更新时间:2023-10-30 00:07:50 25 4
gpt4 key购买 nike

我正在寻找一种将网络摄像头集成到我的 python 程序中的方法。

我在超频至 900mHz 的 Raspberry Pi Model A 上运行,因此该解决方案需要与 ARM 兼容并且(希望)轻量级。

我看到的大多数帖子都推荐使用 OpenCV 模块来读取网络摄像头,但我无法从我的网络摄像头中看到一个黑框。我认为 OpenCV 与我的网络摄像头不兼容。但是,适用于 Linux 的所有其他网络摄像头应用程序都可以检测并显示来 self 的网络摄像头的提要。

我想知道是否有任何其他轻量级或简单的方法可以使用 python 从我的网络摄像头捕获。也许我可以直接与/dev/下为我的网络摄像头出现的 video0 设备进行交互?我愿意接受任何建议;因为我现在正在做的是行不通的。

谢谢

(根据要求):

v4l2-ctl --all 的输出:

Driver Info (not using libv4l2):
Driver name : uvcvideo
Card type : UVC Camera (046d:081b)
Bus info : usb-bcm2708_usb-1.2
Driver version: 3.2.27
Capabilities : 0x04000001
Video Capture
Streaming
Format Video Capture:
Width/Height : 640/480
Pixel Format : 'YUYV'
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SRGB
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 640, Height 480
Default : Left 0, Top 0, Width 640, Height 480
Pixel Aspect: 1/1
Video input : 0 (Camera 1: ok)
Streaming Parameters Video Capture:
Capabilities : timeperframe
Frames per second: 30.000 (30/1)
Read buffers : 0

这是我正在使用的代码片段:

import cv

cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)

while True:
img = cv.QueryFrame(capture)
cv.ShowImage("camera", img)
if cv.WaitKey(10) == 27:
break

cv.DestroyWindow("camera")

感谢您的帮助!

最佳答案

您可以使用 gstreamer-0.10。

  1. 让它在命令行上运行。例如:gst-launch -v v4l2src !解码箱! ffmpeg 色彩空间! PNG ! filesink location=out.png

  2. 使用 parse_launch 函数在您的 python 代码中获取工作管道的快捷方式。

    import gst

    pipeline = gst.parse_launch("""
    v4l2src ! decodebin ! ffmpegcolorspace ! pngenc ! filesink location="%s"
    """ % sys.argv[-1])

    pipeline.set_state(gst.STATE_PLAYING)

关于python - 使用 Python/Linux 读取网络摄像头的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com