見出し画像

Python GUIを用いた筋電図分析

割引あり

こんにちは、rock204チャンネルです。
今回は「Python GUIを使用した筋電図分析」と題しお送りします。

筋電図分析プログラムの動作

筋電図分析プログラムの画面構成について見て行きましょう。
ウィンドウの左上からラベルla01
その下がテキストボックスtx_box
その下にボタンを四つ配置しました。
ファイル指定はbutton_a、データ表示はbutton_b、整流はbutton_c、再計算はbutton_dを割り当てます。
そして、その下にスケールを用意します。これはグラフのx軸の表示下限値と上限値を調整するものです。
下限値設定にはscale1、上限値設定にはスscale2を割り当てます。
そしてその下にツールバーを表示し、
さらに下にキャンパスを割り当て、そしてにFigureを配置します
右上はメッセージmesの表示に使用するものです。

こちらはインポートするモジュールとなります。
GUI環境のモジュールはtkinter
ダイアログの表示はtkinter.filedialogを用います。
またデータの操作などの計算はpandasを使用します。
グラフの表示はmatplotlib.pyplotを用います。
6行、7行はグラフの埋め込みに使用するモジュールとなります。
8行のnumpyは配列操作に使用します。

こちらはグローバル変数の設定です。
csvファイルを取り込むdataframeはdfと設定します。
そして、このdataframeより秒と筋電図データを抽出したものをEMG_dataとします。
この波形を整流したデータを入れるのにdataframe seiryuuを用います。
EMG01_minは筋電図の最小値、EMG01_maxは筋電図の最大値を入れるのに使用します。
またグラフのx軸の下限をsec_min,上限値をsec_maxに代入します。

こちらはウィンドウの設定を示しています。
画面サイズは、1200×800とします。
またファイルアドレスの表示用テキストボックスは
97、 98行で設定しています。

こちらはボタンとメッセージの設定プログラムになります。

こちらはスケールの設定プログラムです。
x軸の下限をscale1で調整します。このときiv1を戻り値として設定します。
小数点以下まで取り込むために、116行ではできた.DoubleVar()として定義します。
同様に122行以下でx軸の上限を設定するscale2を設定します。

こちらはグラフ用オブジェクトの設定を示しています。
オブジェクトはfig=Figureで設定しています。
そして138から139にかけて、このfigをcanvasに埋めこんでいます。

こちらはツールバーの設定を示しています。

こちらはpush_a関数になります。分析する筋電図ファイルを選択しアドレスを取得するものとなります。
ファイルダイアログを開きファイルを選択し、「開く」を押すとtx_boxの中にアドレスが表示されるようにしています。

こちらはpush_b関数です。
筋電図データを読み込み、データの抽出、変換などを行いグラフ表示するまでを行います。

先ほどのスライドの続きとなります。
変換処理されたEMG_dataより時間軸をx、筋電図データをy軸として取り込み
それを41行42行でグラフの系列に設定します。
そして43行44行でこのデータの最小値と最大値を求めています。
また時間軸の最小値、最大値も45行46行で求めています。
このデータを元に47行48行でグラフ範囲の設定をおこない、49行でグラフの描画を行っています。
50行 51行は上で計算された時間軸の最小値、最大値をscaleに設定し、つまみを移動しています。

ここから先は

4,613字 / 4画像 / 1ファイル

この記事が気に入ったらサポートをしてみませんか?