今天給大家分享一個好玩的ImageJ技巧~大家可以在家動手試一試~

科學問題:在沒有專業儀器的情況下(徒手),怎樣粗略地計算出自己的心率呢?

需要的實驗材料:可以錄像的手機、裝有ImageJ的電腦~

實驗原理:在明亮的地方,用一根手指緊貼手機攝像頭進行錄像。心臟將血液泵入手指的毛細血管時,視頻畫面的亮度會有輕微變化(肉眼很難分辨),通過ImageJ軟體捕捉該規律變化的間隔,即可算出心率。

註:僅供好玩,不用於臨牀。(手動狗頭)

1、用一根手指(推薦無名指)蓋住前置攝像頭,視野呈現暗紅色,進行錄像

視野差不多是這樣的

建議錄個幾秒就可以了,不用錄太久,否則導入的時候會非常慢的。

然後將錄像視頻發到電腦上,右鍵點擊屬性查看視頻的幀數

2、將視頻導入ImageJ

ImageJ默認只能導入AVI格式的視頻,而用手機拍攝的視頻一般是MP4格式。如果想直接在ImageJ中導入MP4格式的視頻,需要安裝一個插件:FFmpeg。

安裝方法如下:

(1)打開更新頁面(Help->Update...)

等一會兒就會出現下面這個頁面,點擊Manage update sites。

勾選FFMPEG,點擊Close。

點擊Apply changes。

然後就靜靜等待安裝啦

(2)重啟ImageJ,即可在File->Import裏找到它,這時候就可以直接導入MP4格式的視頻啦

導入後的視頻就相當於被分割成了一幀一幀的圖片,相當於圖片堆棧了:

我的拍攝的視頻總共有409幀

3、去掉片頭和片尾,取中間穩定的時間區間(Image->Duplicate)

我拍攝的視頻總共有409幀,我從中截取第100幀到300幀:

4、用矩形框選工具,框選中間區域

視頻中心位置的光強變化最穩定

5、檢測視頻隨著幀數變化的光強變化(Image -> Stacks -> Plot Z-axis Profile)

光強變化的曲線

這時可以明顯看出隨著幀數的增加,光強的波形圖,即心率。

6、利用Multi-Point工具,檢測每個波峯的位置

利用Multi-Point工具,點選每一個波峯的位置,如圖:

然後點擊Measure,即可得到每個點的X軸坐標(幀數):

我把數據導出後,將每個波峯之間的距離求平均,等於26.8幀,因為這個視頻每秒29幀,所以可以得到心率:

60/(26.8/29)≈65次/分鐘

這徒手測的心率~

好像還挺準~

推薦閱讀:

相關文章