【发布时间】:2016-09-09 18:08:52
【问题描述】:
我告诉他们我需要使用 Gstreamer Hayo 实现 opencv,但不知道如何在管道 gstreamer 上使用 opencv 编写。 想法是通过 OpenCV 获取图像和网络摄像头,并使用 GStreamer 处理一些过滤器。
另外如果我想告诉VideoCapture()从v4l2src device = /dev/video1中获取数据,或者没有写入v4l2src device = /dev/video0(使用linux,我有一个disp虚拟视频,视频0) 抛出以下错误
GStreamer:在手动管道中找不到 appsink 在函数 cvCaptureFromCAM_GStreamer
import cv2
cv2.namedWindow('webCam')
cap = cv2.VideoCapture(1) # "v4l2src device=/dev/video1"
# cap.open("img/bg.avi")
if cap.isOpened():
ret, frame = cap.read()
else:
ret = False
print "problema aqui?"
while True:
#se toma cada frame
ret,frame = cap.read()
frame = cv2.flip(frame,1)
cv2.imshow('webCam', frame)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
# cv2.imwrite("/dev/video0", frame)
fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
pathVid = "/dev/video0" # 'img/output2.avi'
# out = cv2.VideoWriter(pathVid, fourcc, 30, (width,height))
out = cv2.VideoWriter(pathVid, fourcc, 30, (640,480))
out.write(frame)
cv2.VideoWr
esc = cv2.waitKey(5) & 0xFF == 27
if esc:
break
cap.release()
cv2.destroyAllWindows()
【问题讨论】:
-
这可能对您有所帮助。简而言之,Opencv3 支持 gstreamer 插件。 stackoverflow.com/questions/23570572/…
-
thx,但我解决了这个问题,先在 gstreamer 上做一个过滤器,然后我用 opencv 读取这个过滤器。谢谢你
标签: python linux opencv gstreamer pygst