iOS如何检测心率

5

可能重复:
使用相机检测心率

我需要与应用程序“Instant Heart Rate”相同的功能。

基本过程要求用户:

轻轻将食指尖放在摄像头镜头上。 均匀施加压力并覆盖整个镜头。 保持稳定10秒钟并获取心率。 这可以通过打开闪光灯并观察血液通过食指移动时的光线变化来实现。

我该如何开始


我怀疑这是不可能的,因为闪光灯不在与相机相同的位置。如果你用手指遮住相机,无论闪光灯开启还是关闭,它都会显示黑色。 - Fogmeister
我同意Jeremy的观点。第一次发现那个应用程序时,我对它的准确性感到惊讶。如果你把手指放在LED和相机镜头上,并用另一只手的手指放在颈动脉上,你会发现光线随着你的脉搏闪烁。 - Mick MacCallum
1
我刚刚下载了这个应用程序...简直惊呆了!我简直不敢相信它的准确性。我同时感受到了自己的脉搏,太神奇了! - Fogmeister
1
@AT_AB,你需要先初始化相机并读取传感器所接收到的光线水平。除此之外,我也不知道了。 - WhoaItsAFactorial
1
好的,我会整理代码并提供一个可下载的链接。 - AITAALI_ABDERRAHMANE
显示剩余10条评论
1个回答

5
我会先使用AVFoundation来打开灯光。下面链接的帖子中的答案包括如何执行此操作的示例: 如何打开/关闭iPhone相机闪光灯? 然后,就检测光线变化而言,您可能可以使用Brad Larson的GPUImage框架。该框架包含了一些有用的函数,您可以使用其中的一些来实现此目的,包括:
  1. GPUImageAverageLuminanceThresholdFilter
  2. GPUImageAverageColor
  3. GPUImageLuminosity
使用上述过滤器,您应该能够测量手指中的颜色变化,并监测这些变化发生之间的时间间隔。使用此框架,您甚至可以指定颜色/亮度变化的任意差异要求。
从那里,您所要做的就是将颜色变化之间的时间间隔转换为脉冲。以下是计算脉冲的示例。

http://www.wikihow.com/Calculate-Your-Target-Heart-Rate


3
你并不是唯一一个想到这个方向的人:http://stackoverflow.com/questions/14125995/objective-c-peak-detection-accelerate-framework。我做了一些实验,我相信可以使用平均颜色或亮度滤镜来跟踪这里的高峰和低谷,并找到峰值距离。你可能需要将其限制在红色通道上,并使用一些时间平滑处理。 - Brad Larson
2
Brad Larson,您能给我们提供一个示例代码吗? - AITAALI_ABDERRAHMANE
@BradLarson,您能分享一下您的实验吗? - iOS Dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接