Matlab中有现成的图像识别的例子。如果已经有摄像头了,那么就用摄像头进行试验。但是本老觉得笔记本摄像头很不方便,又不舍得花钱去买新的摄像头(主要是穷),既然手机有摄像头,那能不能用手机的摄像头呢?那样就很方便了。
Matlab没啥干不了的,有两种方法,一种利用Matlab自己的mobile版本,一种用第三方的app实现。
Matlab Mobile版本的方法
Matlab Mobile版本其实就是手机端调用摄像头,传至云端,电脑端下载的过程。上传云端到下载,国内的服务器速度不行,你懂的,所以这种方法不推荐。(那我写他干啥。。)
手机(Android)安装Matlab Mobile for Android(自己找办法,搜一下,应该很多),登陆账号,打开传感器设置,访问摄像头权限。
保持手机端Matlab在线,电脑端Matlab也在线,电脑端输入:
m=mobiledev
会提示安装“MATLAB Support Package for Android Sensors”,按照步骤安装,没有问题的话,会输出:
m =
mobiledev with properties:
Device: 'Xiaomi - Mi 10 Pro(051d)'
Connected: 1
Logging: 0
AvailableCameras: {'back' 'front'}
InitialTimestamp: ''
AccelerationSensorEnabled: 0
AngularVelocitySensorEnabled: 0
MagneticSensorEnabled: 0
OrientationSensorEnabled: 0
PositionSensorEnabled: 0
Show all properties
忽略我的破手机啊。这时就可以调用这个手机的摄像头了。
改一下Matlab的例子,如下:
clear;
clear camera;
% 连接到相机并加载预训练的 GoogLeNet 网络。
m = mobiledev;
camera = camera(m,'back');
net = googlenet;
% 要对图像进行分类,必须将其大小调整为网络的输入大小。获取网络的图像输入层的 InputSize 属性的前两个元素。图像输入层是网络的第一层。
inputSize = net.Layers(1).InputSize(1:2);
% 要连续对相机图像进行分类,请将前面的步骤放入一个循环。在图窗打开时运行该循环。要停止实时预测,只需关闭图窗。在每次迭代结束时使用 drawnow 更新图窗。
h = figure;
while ishandle(h)
im = snapshot(camera,'immediate'); %这里的immediate参数不要少了。
image(im)
im = imresize(im,inputSize);
[label,score] = classify(net,im);
title({char(label), num2str(max(score),2)});
drawnow
end
这样就可以调用手机摄像头来玩图像识别了。当然,因为matlab的云服务器不在国内,速度慢的让人无法忍受,本老强烈不推荐这个方法。
用droidcam来调用手机摄像头
本老强烈推荐这个方法,简单,流畅,只是需要电脑和手机在同一个网络下。
安装droidcam,搜一下,很多。Github搜这个关键字也可以。
电脑端Matlab安装MATLAB Support Package for IP Cameras。
手机端打开droidcam,出现相关的信息:
电脑端直接用这个信息就可以调用手机摄像头了。
代码如下:
clear;
clear camera;
% 连接到相机并加载预训练的 GoogLeNet 网络。
camera=ipcam('http://192.168.0.20:4747/video/mjpg.cgi')
net = googlenet;
% 要对图像进行分类,必须将其大小调整为网络的输入大小。获取网络的图像输入层的 InputSize 属性的前两个元素。图像输入层是网络的第一层。
inputSize = net.Layers(1).InputSize(1:2);
% 要连续对相机图像进行分类,请将前面的步骤放入一个循环。在图窗打开时运行该循环。要停止实时预测,只需关闭图窗。在每次迭代结束时使用 drawnow 更新图窗。
h = figure;
while ishandle(h)
im = snapshot(camera);
image(im)
im = imresize(im,inputSize);
[label,score] = classify(net,im);
title({char(label), num2str(max(score),2)});
drawnow
end
流畅,快速,可以愉快的进行图像识别了。文章来源:https://www.toymoban.com/news/detail-520030.html
文章来源地址https://www.toymoban.com/news/detail-520030.html
到了这里,关于手机摄像头+Matlab完成图像的自动识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!