于是细细去看,竟是大名鼎鼎的ImageJ。ImageJ是什么呢?是NationalInstitutes of Health(NIH)开发的一款免费的、功能强大的图像处理软件,在科研中应用极为广泛。不用介绍了,介绍就是百度的平方、立方…… ImageJ是一个主流的工具,很容易找到学习资料。于是看着知乎上一个专栏的教程,先尝试一个手机测心率,结果极其准确。 1.下载ImageJ。ImageJ有两种版本,一种干净清爽的ImageJ本身,地址为https://imagej./ij/download.html,另一个是FiJi,地址为https:///software/fiji/downloads,它们的差别是ImageJ的功能比较少,于是FiJi是人们把各种功能插件放在一起,重新包装的。 2.录制心跳视频。拿起来手机,打开相机,用无名指挡住摄相头,这时手机屏幕上是一片肤红色(自己还有多少胶原蛋白,心里没点儿数么?)。录制10秒视频。这个视频其实是一亮一暗、一亮一暗随心跳变化的,但是肉眼看不出来。 把视频发送到电脑(压缩成压缩包再传,别用微信、QQ等直接传,它们会把视频文件重新压缩和处理,有些重要的参数会变化),看看帧率,一会儿要用。 3.打散视频文件为图片序列。用Tracker打开录制的视频,然后导出为jpg序列。说明一:FiJi(ImageJ)通过FFmpeg插件是可以直接导入mp4格式视频的,但是我安装这个插件安装了N次没有成功,提示N多错误。说明二:使用Tracker打开mp4、mov是Tracker的常规操作,也不算麻烦,但却增强了ImgaeJ的通用性。这样想开了,就不再想着安装FFmpeg了。 4.导入图片序列。File/Import/Image sequence... 5.提取图片序列中间段。Image/Duplicate...选取要提取的部分首、尾帧,注意勾选Duplicate stack,就是确定之后会重新复制一份新的序列,而不会在原来的图片序列上折腾。 6.提取图片序列的基础数据(Profile)统计图。用方框工具选图片比较中间的部分,再Image/Stacks/Plot Z-axis Profile,得到统计图。再用point描点工具把各曲线峰标出来。 7.得到曲线峰的数据表。Analyze/Measure,得到各峰值统计数据表,这个表能被保存成csv格式。 8.计算心率。到Excel里打开统计数据表,其中X的含义是这些峰值们相距的帧数(因为和时间是对应的,所以带有小数部分),Y值其实就是光强度的意思。 在I9、I10、I11输入相应公式,计算得到心动周期0.8929秒,心率67次/秒。按住手腕桡动脉,打开手机秒表,屏住呼吸,数脉搏,发现正好67次。 |
|
来自: 新用户5228KeDY > 《待分类》