前不久有伙伴在Q群中询问用matlab调用网络摄像头的事,其实咱很久之前就分享过,由于看的人太少了就给删了。今天重新整理分享出来,本文的主角就是IP Webcam,通过它就可以轻松将智能手机转变成网络摄像头,这也是为啥将标题取为“matlab让我的旧手机起死回生”的原因。如果手中有闲置旧手机,安上IP Webcam,打开手机无线热点(无需使用数据流量和WiFi就能用,仅打开热点),旧手机里面变成一个全能监控王。接下来就一起来看看怎么操作的吧!
一、打开手机热点
二、启动IP WebCam软件
从上图中不难发现IP WebCam有丰富音视频设置功能,支持插件、动作与声音检测。
三、点击开启服务器
待开启服务器后,出现如下画面:
在电脑端打开浏览器,在浏览器中输入IPv4后面的网站即可读取音视频流数据了。下图是输入IP地址后的管理监控界面:
因为flash已经停更且存在安全风险,推荐视频栏选择浏览器,音频栏选择HTML5 Wav即可。点击双向音频,还支持通话,如下:
此外,新版本还支持读取传感器信息:
上面就是IP WebCam的简单使用教程。接下来介绍如何在matlab中实现对IP WebCam的调用。
~~IP WebCam高级功能服务地址列表~~
代码语言:javascript复制IP摄像头的服务地址列表:
http://192.168.0.101:8080/video 是 MJPEG URL.
http://192.168.0.101:8080/shot.jpg 获取最新一帧
http://192.168.0.101:8080/audio.wav 是WAV格式的音频流
http://192.168.0.101:8080/audio.aac 是AAC格式的音频流(如果硬件支持的话)
http://192.168.0.101:8080/audio.opus 是Opus格式的音频流
http://192.168.0.101:8080/focus 对焦摄像头
http://192.168.0.101:8080/nofocus 释放对焦
这里通过读取图片的方式来实现在matlab中调用IP WebCam,调用相关源代码如下:
代码语言:javascript复制clc;clear;close all
% 定义IP地址
IP = '192.168.0.10:8080';
% 获取IP Webcam的图像
url = strcat('http://',IP,'/shot.jpg');
% 读取图像
pic = imread(url);
% 显示图像
fhandle = image(pic);
while(1)
pic = imread(url);
set(fhandle,'CData',pic);
% 刷新图像
drawnow;
end
实际效果(因为微信平台限制GIF帧数和文件大小,删了不少帧)
MATLAB中文论坛的math教授分享过一款将摄像头用于安防的教程,并提供了源代码,感兴趣的伙伴可以去论坛找找。只要有了图像和视频数据,一切有关图像和视频处理的工具都可排上用场了。要是有时间,我也计划自己做一款实时视频图像处理工具。至于文中提到的IP WebCam,大家可自行谷歌搜索,在此就不分享了。
当然也可以通过官方的matlab app来实现对手机相机的读取。不过私下试了试,速度真的是很慢,延迟卡顿非常严重,而且还不能离线使用,即不能通过热点访问。要是大家感兴趣,可以为大家做一期使用官方app来调用的教程。今天的内容到此就结束了,希望能对小伙伴们有所帮助!
封面图片来源:由 FunkyFocus 在Pixabay上发布