如何在Matlab中开始使用网络摄像头和IPCam

909 阅读6分钟

在Matlab中开始使用网络摄像头和IPCam

在本教程中,我们将研究如何安装MATLAB的WEBCAM和IPCAM硬件包,这是访问硬件的必要条件。我们还将研究如何用Matlab代码访问笔记本电脑的内置WEBCAM和外部USB网络摄像头,以拍摄快照、预览和录制视频片段。

我们将了解更多关于使用Matlab将手机的摄像头转换为IPCAM的安卓应用程序。

网络摄像机(WEBCAM)连接到PC上,可以用来向其他用户提供视频。连接通常是通过一个USB。IP摄像机(IPCAM)是将高端网络功能、个人电脑和网络接口结合在一起的一种网络就绪的产品。

前提条件

要跟上本教程的进度,读者需要以下条件。

  • 在你的PC上安装Matlab。
  • 安装网络摄像头和Ipcam支持包。
  • 在你的手机上安装网络摄像头的Android应用程序。

对摄像机接口的需求

有几个项目需要图像或视频作为主要输入。

我们需要图像或视频作为输入的几个用例是。

  1. 脸部识别和确认。
  2. 基于人脸识别的安全系统和考勤系统。
  3. 面部表情识别。
  4. 物体识别和分类。
  5. 现场火灾检测。
  6. 车牌识别和车辆记录系统。
  7. 以及更多...

硬件支持包的安装

  • 在Matlab窗口的右上角登录您的MathWork账户。

sign in tab

签入MathWork帐户

  • 点击Add-Ons 下拉箭头,选择Get hardware support package

add_on menu

下载硬件支持包的附加功能

  • 硬件支持包打开后,在搜索标签上输入MATLAB support package for USB webcam

support package

搜索USB网络摄像头的MATLAB支持包

  • 然后,点击Install 按钮。

install tab

安装软件包

对于我们的情况,Install 的按钮变为Manage ,因为该软件包已经安装在我们的PC上。

由于我们要访问IP摄像机,我们需要IP支持包。

  • 使用上述同样的过程,我们将找到MATLAB support package for IP camera ,然后安装它。

support package

安装IP摄像机的支持包

访问笔记本电脑内置网络摄像机和外部USB网络摄像机的Matlab代码

要看到所有连接到你的PC上的摄像头的列表,请在控制台执行下面的代码。

webcamlist

首先,用webcam 创建一个摄像机对象。这里,我们使用cam1 作为对象。

cam1 = webcam    %integrated webcam

然后,我们使用preview() 来执行。这是为了看到你的相机对象正在捕捉的视频的实时流。

preview(cam1)

你可以使用snapshot() 来拍摄快照,并保存该帧。

这是通过执行快照函数来完成的,并使用imshow() 函数查看捕获的图像。

然后,捕获的图像被存储在变量img1 ,如图所示。

img1 = snapshot(cam1);
imshow(img1) 

captured image

使用内部网络摄像机捕获的图像

在实时流和快照之后,清除摄像机对象cam1 ,以释放内存。

clear cam1

如何访问外部USB摄像头?

该命令与访问内部网络摄像机的命令相同。

不同的是,在定义网络摄像机时,你需要改变硬件名称。

cam2 = webcam('USB2.0 PC camera');
preview(cam2);
img2 = snapshot(cam2);
imshow(img2)

snapshot from the USB webcam

使用外部网络摄像头捕获的图像

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摄像机。

要找到并使用安卓应用程序,请遵循以下步骤。

  1. 进入你手机上的Google Play Store
  2. 搜索 IPCAM。

注意,你会发现许多这样的应用程序。IP Webcam by Pavel(开发者)是最受欢迎的,也是将手机转换为IPCAM的首选。

ipcam

要下载的应用程序的屏幕截图

一旦安装完毕,按照下面的步骤查看实时流视频。

  1. 向下滚动并选择启动服务器选项。

starting the server

启动服务器

  1. 一旦选择了服务器,你的手机上就可以看到直播视频。

注意,在屏幕的下部,你可以看到IPv4地址。

ip address

现场网络摄像机的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是非常重要的。它们可以用于每个部门,以改善和提高安全性。它们还可以用来捕捉图像,以便进一步分析和与数据科学有关的项目。