我们生活中经常会问遇到手机拍照内存不够该怎么办?朋友圈经常看到各种运动轨迹 APP记录的跑步路线图,我们感到好玩,但是我们不禁还想问如何实现的呢?其实这都和手机中的传感器有关。手机是一个高度集成的电子产品,除了能通讯外,他还集中了很多的传感器,包括加速度、角速度、磁场、方向、位置。那么上面有关拍照上传或者读取传感器数据的问题都可以用matlab 软件实现,以下讲进行讲解。

一、硬件准备:智能手机一部、电脑一台;

二、软件准备:安卓/iso手机安装Matlab mobile;

电脑安装matlab版本需要在R2014以上版本,且需要安装MATLAB Support Package for Android Sensors in MATLAB/MATLAB Support Package for Apple iOS Sensors in MATLAB、matlab driver connector和相应的mapping tool box

手机数据到电脑的原理图如下图,这里需要注意的是在移动端和PC端的matlab软件需要使用同一账户登录。

matlab多传感器融合(让日常手机成为传感器和摄像头)(1)

1、手机安装Matlab mobile

matlab多传感器融合(让日常手机成为传感器和摄像头)(2)

警告需要许可证编号升级,否则无法使用,可以通过进入官网获取一个月试用权限。选择流式传输至Matlab。

matlab多传感器融合(让日常手机成为传感器和摄像头)(3)

使用自己的邮箱账号进行注册和登记(手机版登陆的matlab账号)

matlab多传感器融合(让日常手机成为传感器和摄像头)(4)

在手机上打开matlab mobile 可以正常使用,打开传感器,可以看到传感器记录的息。如上图所示。

2、电脑Matlab drive connector等软件安装

Matlab大家都比较熟悉了,这里就不再介绍。从网上下载,如下图安装Matlab drive connector,手机上的matlab mobile记录数据信息后,会发送到云端,电脑上的matlab可以通过Matlab Drive Connector在云端接收到这些信息,然后对数据进行处理。

matlab多传感器融合(让日常手机成为传感器和摄像头)(5)

3、Matlab Mobile 记录数据

如下图箭头所示进如软件,选择传感器都为启动状态,并且在“更多”选项中打开摄像头。

matlab多传感器融合(让日常手机成为传感器和摄像头)(6)

点开箭头所示位置进入命令行界面输入

clear;

m=mobiledev;

如下图,点击开始,手机进行记录数据数据。然后就可以拿着手机沿着待测量的路径行走。

matlab多传感器融合(让日常手机成为传感器和摄像头)(7)

数据记录结束后,点击停止,结束记录数据

如上图右图 手机软件中输入命令:

[lat, lon, t, spd] = poslog(m);

posdata.lat = lat;

posdata.lon = lon;

posdata.t = t;

posdata.spd = spd;

save('posdata.mat','posdata');

4、电脑 Matlab 进行数据处理和显示

之后进入matlab 跳转到Drive connector文件夹中可以看到保存的mat文件

matlab多传感器融合(让日常手机成为传感器和摄像头)(8)

打开matlab ,跳转到Drive connector文件夹中运行,以下代码,结果如下图

load('posdata.mat');

lat=posdata.lat;

lon=posdata.lon;

spd=posdata.spd;

t=posdata.t;

t=t-t(1);

wm=webmap('World Street Map');

s=geoshape(lat,lon);

wmline(s,'color','red','width',3);

matlab多传感器融合(让日常手机成为传感器和摄像头)(9)

5、同理拍照

根据以上介绍,解决拍照空间不足的问题,我们可以解决。只需要在上面介绍的3、Matlab Mobile 记录数据中存储传感器代码换为如下即可。

clear;

close all;

clc;

%相机数据采集

m=mobiledev;

c=camera(m,'back')

while 1

img=snapshot(c,'immediate');%打开后置摄像头

img=imresize(img,[227,227]);%图像resize

pause(0.2)

try

imwrite(img,'get.jpg');%保存

end

end

运行结束后我们可以在Drive connector文件夹中可以看到保存的相机get文件,这样我们就可以不占用手机内存,把相片发送到matlab云端,进而转移到我们的电脑里。

matlab多传感器融合(让日常手机成为传感器和摄像头)(10)

,