在Matlab中开始使用网络摄像头和IPCam
在本教程中,我们将研究如何安装MATLAB的WEBCAM和IPCAM硬件包,这是访问硬件的必要条件。我们还将研究如何用Matlab代码访问笔记本电脑的内置WEBCAM和外部USB网络摄像头,以拍摄快照、预览和录制视频片段。
我们将了解更多关于使用Matlab将手机的摄像头转换为IPCAM的安卓应用程序。
网络摄像机(WEBCAM)连接到PC上,可以用来向其他用户提供视频。连接通常是通过一个USB。IP摄像机(IPCAM)是将高端网络功能、个人电脑和网络接口结合在一起的一种网络就绪的产品。
前提条件
要跟上本教程的进度,读者需要以下条件。
- 在你的PC上安装Matlab。
- 安装网络摄像头和Ipcam支持包。
- 在你的手机上安装网络摄像头的Android应用程序。
对摄像机接口的需求
有几个项目需要图像或视频作为主要输入。
我们需要图像或视频作为输入的几个用例是。
- 脸部识别和确认。
- 基于人脸识别的安全系统和考勤系统。
- 面部表情识别。
- 物体识别和分类。
- 现场火灾检测。
- 车牌识别和车辆记录系统。
- 以及更多...
硬件支持包的安装
- 在Matlab窗口的右上角登录您的MathWork账户。

签入MathWork帐户
- 点击
Add-Ons下拉箭头,选择Get hardware support package。

下载硬件支持包的附加功能
- 硬件支持包打开后,在搜索标签上输入
MATLAB support package for USB webcam。

搜索USB网络摄像头的MATLAB支持包
- 然后,点击
Install按钮。

安装软件包
对于我们的情况,Install 的按钮变为Manage ,因为该软件包已经安装在我们的PC上。
由于我们要访问IP摄像机,我们需要IP支持包。
- 使用上述同样的过程,我们将找到
MATLAB support package for IP camera,然后安装它。

安装IP摄像机的支持包
访问笔记本电脑内置网络摄像机和外部USB网络摄像机的Matlab代码
要看到所有连接到你的PC上的摄像头的列表,请在控制台执行下面的代码。
webcamlist
首先,用webcam 创建一个摄像机对象。这里,我们使用cam1 作为对象。
cam1 = webcam %integrated webcam
然后,我们使用preview() 来执行。这是为了看到你的相机对象正在捕捉的视频的实时流。
preview(cam1)
你可以使用snapshot() 来拍摄快照,并保存该帧。
这是通过执行快照函数来完成的,并使用imshow() 函数查看捕获的图像。
然后,捕获的图像被存储在变量img1 ,如图所示。
img1 = snapshot(cam1);
imshow(img1)

使用内部网络摄像机捕获的图像
在实时流和快照之后,清除摄像机对象cam1 ,以释放内存。
clear cam1
如何访问外部USB摄像头?
该命令与访问内部网络摄像机的命令相同。
不同的是,在定义网络摄像机时,你需要改变硬件名称。
cam2 = webcam('USB2.0 PC camera');
preview(cam2);
img2 = snapshot(cam2);
imshow(img2)

使用外部网络摄像头捕获的图像
clear cam2
捕捉实时视频片段的Matlab代码
要捕获一个实时视频片段,我们首先需要定义webcam 对象。
cam = webcam('USB2.0 PC camera');
然后,我们指定捕捉视频的持续时间t ,并定义每秒的帧数fps 。
t = 20; % the time is in second
fps = 30;
nof 的帧数将是时间t 和每秒帧数fps 的乘积。
我们按以下方式实现上述内容。
nof = t* fps
然后我们用你的文件名声明视频写入器对象videowriter() 。这意味着你的输出将被保存在当前目录的文件夹中,文件名是myvideo 。
vidwriter = videowriter('myvideo.mp4')
open(vidwriter)
现在,我们定义一个for 循环,以循环播放这些帧。这定义了你要捕获的帧数。
这里,我们从1 循环到nof ,如图所示。
for index = 1: nof
img = snapshot(cam); %this is to acquire the frame
然后我们通过执行writeVideo() 函数来写(保存)视频。
writeVideo(vidWriter, img);
pause(t/nof)
end
通过执行snapshot(cam) ,每个快照将被存储在img ,并在同一时间写到vidWriter 。
pause(t/nof) 命令是按比例给予暂停,以创建fps 。
一旦完成,我们关闭vidWrite ,并清除摄像机对象cam 。
close(vidWriter)
clear cam
使手机成为IP摄像机
要使你的手机成为IP摄像机,你需要一个第三方的安卓应用程序,通过它你可以将你的手机转换为IP摄像机。
要找到并使用安卓应用程序,请遵循以下步骤。
- 进入你手机上的
Google Play Store。 - 搜索 IPCAM。
注意,你会发现许多这样的应用程序。IP Webcam by Pavel(开发者)是最受欢迎的,也是将手机转换为IPCAM的首选。

要下载的应用程序的屏幕截图
一旦安装完毕,按照下面的步骤查看实时流视频。
- 向下滚动并选择启动服务器选项。

启动服务器
- 一旦选择了服务器,你的手机上就可以看到直播视频。
注意,在屏幕的下部,你可以看到IPv4地址。

现场网络摄像机的IP地址
IPv4 地址将被用来从我们的Matlab访问摄像机。因此,我们应该注意到它。
这个IP地址也可以在你的PC浏览器中打开,以查看移动IP摄像机的实时流媒体。
这可以通过简单地长按屏幕复制你的IP地址,并在浏览器中搜索它来完成。
请注意,手机和电脑必须连接到同一个WiFi网络。
如何从你的IP访问实时视频流到你的Matlab?
我们首先创建一个摄像机对象cam3 。创建摄像机对象时,我们需要IP摄像机的IP地址。
cam3 = ipcam('http://192.168.1.4:8080/video');
%execute the preview command to get the video on your Matlab
preview(cam3)
有关该主题的更多信息,请查看这里
结论
Matlab是一个更好的软件,可以用来进行实时视频流。这是因为它有支持包,使这个过程更容易。
它也更容易使用和理解,因为代码并不笨重。
IPCAM和WEBCAM是非常重要的。它们可以用于每个部门,以改善和提高安全性。它们还可以用来捕捉图像,以便进一步分析和与数据科学有关的项目。