在我的下一个项目中,我开始分析通过相机测量脉搏的应用程序(你在相机上按一下手指,你就会得到脉搏信息)。
我的结论是,这些应用程序在光线的帮助下从相机接收数据。如何做到这一点呢?你能告诉我应该调查的地方吗?
如果有人愿意帮我解释一下脉搏测量应用程序是如何工作的?我在网上找不到任何关于这个话题的文档。
提前感谢
发布于 2011-10-22 21:41:35
这类应用使用的是Camera的预览模式。
使用方法setPreviewCallBack(..) (当然还有startPreview()),您可以注册自己的侦听器,该侦听器不断地从包含当前所见图片的相机接收调用:
onPreviewFrame(byte[] data, Camera camera)图像数据包含在数据字节数组中。数据的格式可以通过setPreviewFormat()设置。例如,使用这些数据,您可以处理图像,并在图像中的某个点降低它的亮度。随着时间的推移,图像亮度应显示脉冲。
我不认为必要的图像算法在Android运行时默认是可用的,因此你必须开发自己的算法或寻找可以在Android上使用的第三方库。
发布于 2011-10-22 21:56:00
为了从非编程角度补充罗伯特的答案(既然你问了),脉搏测量应用程序是基于Pulse Oxymetry的。
这个想法是为了测量红光的吸收率,当含氧血液通过你的指尖时,红光的吸收率会发生变化。当发生这种情况时,吸光度将出现峰值,您只需测量峰值被记录的次数,然后除以相应的时间框架即可计算出心脏频率。
IMHO,在移动设备上执行它是不太可靠的,因为它需要良好的照明条件和红外线脉冲,并且有几个因素使这项任务非常困难:
1)某些电话的闪光灯可能不在摄像头附近
2)有些手机可能根本没有闪光灯
3)您没有访问红外数据的权限。
4)手机必须是绝对静止的,否则图像会不断变化,导致亮度测量不可靠。
https://stackoverflow.com/questions/7859658
复制相似问题