我希望使用OpenCV分析从本机摄像头以其原始分辨率1280 x 960拍摄的帧(部分帧)。我可以使用Gstreamer和appsink捕获它们。然而,我已经意识到,仅仅导入OpenCV会破坏Gstreamer,使我的捕获不再工作。
我需要Gstreamer,因为OpenCV只允许捕获640x480,并且我喜欢它带来的所有额外功能。
我能想到的最简单的示例来显示我的问题是这个:
在以上版本中,如果我取消注释import cv2语句,则会出现无尽的错误消息:libv4l2:错误,连续获得4个帧解码错误,最后一个错误:v4l-convert:错误,无法为RGB3 1280x960枚举frameival索引:6,使用src:MJPG 1280x960,错误:无效参数。我使用的是OpenCV版本2.4.1,Gstreamer版本0.10.36的Kubuntu Linux 12.04。openCV对我的Gstreamer造成了什么影响?我该如何同时使用它们?
我需要Gstreamer,因为OpenCV只允许捕获640x480,并且我喜欢它带来的所有额外功能。
我能想到的最简单的示例来显示我的问题是这个:
import gst
from time import sleep
#import cv2
pipeline = gst.Pipeline()
bin = gst.parse_bin_from_description('''
autovideosrc !
video/x-raw-rgb, width=1280, height=960 !
ffmpegcolorspace !
xvimagesink
''', False)
pipeline.add(bin)
pipeline.set_state(gst.STATE_PLAYING)
while True:
sleep(1)
在以上版本中,如果我取消注释import cv2语句,则会出现无尽的错误消息:libv4l2:错误,连续获得4个帧解码错误,最后一个错误:v4l-convert:错误,无法为RGB3 1280x960枚举frameival索引:6,使用src:MJPG 1280x960,错误:无效参数。我使用的是OpenCV版本2.4.1,Gstreamer版本0.10.36的Kubuntu Linux 12.04。openCV对我的Gstreamer造成了什么影响?我该如何同时使用它们?