在Linux(Fedora 15 Beta)上使用OpenCV 2.2和Python捕获图像

1 投票
2 回答
1624 浏览
提问于 2025-04-16 16:40

我有下面的代码:

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的摄像头捕捉脚本。所以我知道这个程序本身没有问题。我可以在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本身有问题?还是说示例脚本有什么问题?

谢谢你的时间。

2 个回答

0

试着使用不同的相机编号

capture = cv.cvCaptureFromCam(1)

或者使用其他更高的编号

2

这个符号应该是由名为 gstreamer-plugins-base 的软件包提供的。

你可以检查一下这个软件包是否已经安装。如果已经安装了,那就说明你当前的版本比 OpenCV 2.2 所需要的版本要旧。为了确保一切正常,最好把你平台上的整个 GStreamer 更新一下。

撰写回答