用 MATLAB 读取网络摄影机,真的是件超级麻烦的事情。
表面上是有一个好用的 ipcam 函数,但是限制太多。
※ 本文于 2019/06/19 更新程序及部分内文 ※
若您想要使用 MATLAB 读取网络摄影机的话,
那么最容易找到的方法应该是使用 ipcam 这个函数。
首先要到 Add-on 下载相关套件:MATLAB Support Package for IP Camera
(警告:若您使用非正版的 MATLAB ,从 Add-On 下载套件的任何后果请自行负责。)
该套件的用法如下:cam = ipcam('URL')
cam = ipcam('URL', 'Username', 'Password')
cam = ipcam('URL', 'Username', 'Password', 'Timeout', Timeout)
但是坦白说,这个函数很难用,除了要先去下载安装包就算了,
重点是这个函数不能吃 “h.264” 的影像串流,只能够接受“mjpeg”的格式。
夏恩从维基百科撷取一段文字过来:
H.264,又称为MPEG-4第10部分,是一种面向块的基于运动补偿的影片编码标准。
到 2014年,它已经成为高精度影片录制、压缩和发布的最常用格式之一。
H.264这么好,然后MATLAB说不能吃!开什么玩笑!
好吧,夏恩的版本是R2016b,说不定之后的版本已经解决了这个问题。
※ 2019.06.19 更新资讯:R2019a 仍然没有解决这个问题。※
所以,为了解决这个问题,只好自己设计一个撷取 ipcam 的程序了!
以下使用 C# 和 EmguCV 写一个撷取程序,再把数据送给 MATLAB 用。
环境介