2011-04-29 70 views
1

我有下面的代码;在Linux上使用OpenCV 2.2和Python捕获图像(Fedora 15 Beta)

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本身有问题吗?或者,示例脚本可能有问题?

谢谢你的时间。

回答

2

即符号应该被包gstreamer的-插件基来提供。

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

+0

我已经使用OpenCV的和Python版本上的一些问题2.1,我不知道他们是否修复了它,但是它与VideoWriter有关,尽管Python接口有点失望,但C/C++接口工作得非常好, – karlphillip 2011-06-29 00:14:07

+0

事实证明我的GStreamer已经失效了日期感谢您的帮助。 – JohnRoach 2011-06-29 06:16:22

0

尝试使用不同的相机索引

capture = cv.cvCaptureFromCam(1) 

或其它较高索引

+0

没有改变任何东西:( – JohnRoach 2011-06-17 07:55:28

+0

我一看OpenCV的参考和 该指数应为0或-1,除非你有多个摄像头连接。 – 2011-06-28 23:59:40