13

我正在尝试使用 android 设备中的相机测量心跳。

据我所知,将指尖放在相机镜头上并观察相机中帧的变化。我已经尝试过这里的应用程序,但它似乎不正确。

4

2 回答 2

5

请在谷歌代码上查看这篇文章

http://code.google.com/p/android-heart-rate-monitor/issues/detail?id=1#c22

它解释了如何检查手指是否在相机上。

“对于任何感兴趣的人,我想出了如何检测用户是否将手指放在相机上。在 imageProcessing.java 中,在 decodeYUV420SPtoRedAvg() 方法中,我们计算了红色像素的平均值。做了一个小实验,我发现当用户将手指放在相机镜头上时,平均值> 200。在其他情况下,平均值<200。因此,在 HeartRateActivity 中您可以添加一个decodeYUV420SPtoRedAvg() 调用后的 if 语句,查找返回的值是 >200 还是 <199。您可以使用它来显示警告框或类似的东西,以引导用户将手指放在相机镜头上。”

于 2015-05-22T11:50:35.500 回答
1

一种解决方案

在android中,我们可以在后台打开摄像头,这样当我们用手指点击覆盖整个摄像头时,我们可以检查颜色或RGB。

当我们当时获得相同颜色的颜色时,我们知道相机完全用手指轻拍覆盖,现在您可以测量心率。

其他解决方案

  1. 从相机抓取图像帧
  2. 将帧的图像度量与前一帧进行比较。您需要弄清楚要使用哪些指标:亮度、颜色等。
  3. 如果指标在一个方向上显着不同,那么您就有了心跳。
  4. 暂停一些不确定的时间。
  5. 转到 1

其他心率演示(如果有用 ) HeartRate Demo

您所要做的就是打开 HeartRateMonitor 应用程序,然后将食指尖放在手机的相机镜头上。整个相机预览图像应为红色,指尖触摸的区域较浅。不要按得太用力,否则会切断循环,导致读数不准确。

一两秒后,您应该会看到屏幕顶部的 Android 图标在感应到心跳时开始闪烁红色。十秒钟后,它将计算您的心率并更新 Android 图标旁边的数字。获得准确的心率需要 10 到 30 秒。

于 2015-05-22T11:16:05.357 回答