对于我的下一个项目,我开始分析通过相机测量脉冲的应用程序(您用手指按相机并获得脉搏信息)。
我的结论是应用程序借助灯光从相机接收数据。怎么做到这一点?你能指导我到我应该调查的任何地方吗?
如果有人有心情帮我解释脉搏测量应用程序是如何工作的?我在网上找不到关于这个主题的任何文档。
提前致谢
答案 0 :(得分:3)
为了从非编程的角度补充罗伯特的答案(并且自从你提出这个问题),脉冲测量应用程序基于Pulse Oxymetry。
这个想法是测量红光的吸光度,当含氧血液通过指尖时会发生变化。当发生这种情况时,吸光度会出现峰值,您只需要测量峰值的记录次数,然后除以相应的时间帧来计算心率。
恕我直言,要在移动设备上执行它并不是很可靠,因为它需要良好的照明条件和红外脉冲,并且有几个因素使得这项任务非常困难:1)某些手机可能没有相机附近的闪光LED指示灯
2)有些手机可能根本没有闪光灯
3)您无权访问红外线数据。
4)手机必须绝对静止,否则图像会不断变化,使亮度测量不可靠。
答案 1 :(得分:1)
AFAIK此类应用正在使用Camera的预览模式。
使用方法setPreviewCallBack(..)(当然还有startPreview()
),您可以注册自己的监听器,该监听器持续接收来自包含当前所见图片的摄像头的呼叫:
onPreviewFrame(byte[] data, Camera camera)
图像数据包含在数据字节数组中。可以通过setPreviewFormat()设置数据格式。使用此数据,您可以处理图像并将其降低到图像中某个点的亮度。在此期间,图像亮度应显示脉冲。
我认为Android运行时默认情况下不需要必要的图像算法,因此您必须开发自己的算法或寻找可在Android上使用的第三方库。