为了账号安全,请及时绑定邮箱和手机立即绑定

如何从视觉捕捉卡访问数据到opencv?

如何从视觉捕捉卡访问数据到opencv?

慕莱坞森 2021-11-09 19:56:42
我正在尝试将数据从内窥镜获取到 python 中的 opencv 代码中。内窥镜机器有一个 dvi 输出,我有一个 Datapath 视觉采集卡,可帮助将其读入我的系统。我知道 opencv 只能从 USB 摄像头或 ip 网络摄像头读取。我想知道是否有人对 opencv 进行过这种阅读?
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

这是我在论坛中找到的答案,如果这可能有帮助的话!我不知道 dvi-ffmpeg 之间的区别!检查是否有将 dvi 输出转换为 ffmpeg 的选项。


--------------在下面回答--------------


我试图通过 ffmpeg 管道到标准输出,以便它可以被 OpenCV 读取。似乎 streamlink 可以直接通过管道传输到标准输出。当我有机会的时候,我也可能会搞砸。


终于得到了。我以前将图像保存到磁盘,然后将它们读入 opencv。那行得通,但此解决方案有助于避免持续图像流的磁盘写入/读取成本。最终为我解决的是:


使用命名管道管道 ffmpeg 输出到命名管道然后使用 cv2.VideoCapture 从该管道读取创建命名管道:


if os.path.isfile("/tmp/stream"):

    os.remove("/tmp/stream")

else:

    call(["mkfifo", "/tmp/stream"])

ffmpeg 调用:


p = Popen(["ffmpeg -c:v h264 -i pipe:0 -r 1 -f image2pipe - > /tmp/stream"], stdout = PIPE, bufsize=10**8, shell=True)

recordStatus = p.poll()        # check PIPE status every once in a while to make sure it hasn't closed early

用opencv读取:


path = "/tmp/stream"

raw_image = cv2.VideoCapture(path)

ret, frame = raw_image.read()

希望这可以帮助!


查看完整回答
反对 回复 2021-11-09
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

可以将 DVI 流写入文件,FFMPEG/gstreamer 读取文件流,然后将输入通过管道传输到 OpenCV。


查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信