【问题标题】:Capturing images with OpenCV 2.2 and Python on Linux (Fedora 15 Beta)在 Linux (Fedora 15 Beta) 上使用 OpenCV 2.2 和 Python 捕获图像
【发布时间】:2011-04-29 15:47:03
【问题描述】:

我有下面的代码;

import cv
import time

cv.NamedWindow("camera", 1)

capture = cv.CaptureFromCAM(0)

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

以上代码是OpenCV-2.2自带的Python CAM捕获脚本。所以我知道这个程序没有问题。而且我可以将我的摄像头与 Linux 上的不同应用程序一起使用,比如名为 Cheese 的程序。然而,当我编译这个程序时,我得到一个错误如下;

(camera:2519): GStreamer-CRITICAL **: gst_debug_add_log_function: assertion `func != NULL' failed

(gst-plugin-scanner:2521): GStreamer-WARNING **: Failed to load plugin '/usr/lib64/gstreamer-0.10/libgstbcmdec.so': /usr/lib64/gstreamer-0.10/libgstbcmdec.so: undefined symbol: gst_video_format_new_caps

我猜 GStreamer 有问题。有没有办法来解决这个问题?还是 OpenCV-2.2 本身有问题?还是示例脚本有问题?

感谢您的宝贵时间。

【问题讨论】:

    标签: python linux opencv webcam fedora


    【解决方案1】:

    该符号应由包 gstreamer-plugins-base 提供。

    检查您是否安装了它。如果你有它,这意味着你的这个包的版本比 OpenCV 2.2 需要的版本旧。最好在您的平台上更新整个 GStreamer 以确保安全。

    【讨论】:

    • 我在 2.1 版上使用 OpenCV 和 Python 时遇到了一些问题,我不知道他们是否修复了它,但它与 VideoWriter 有关。尽管如此,C/C++ 接口工作得非常好,尽管 Python 接口有点令人失望。
    • 原来我的 GStreamer 已经过时了,谢谢你的帮助。
    【解决方案2】:

    尝试使用不同的相机索引

    capture = cv.cvCaptureFromCam(1)
    

    或其他更高的索引

    【讨论】:

    • 我阅读了 opencv 参考,并且该索引应该是 0 或 -1,除非您连接了多个摄像头。
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 2021-04-09
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多