【问题标题】:OpenCv + Gstreamer + python on linuxLinux上的OpenCv + Gstreamer + python
【发布时间】: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


【解决方案1】:

首先,试试下面的命令,

gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! ximagesink

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-14
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 2015-09-21
    • 1970-01-01
    相关资源
    最近更新 更多