1

私のプロジェクトでは、通常のカメラ (jpeg) で撮影した ECG 画像をデジタル化する必要があります。たとえば、次のカメラ キャプチャ画像があります。これを実装するために C# を使用しています。

ここに画像の説明を入力

次に、この画像をグレースケール画像に変換し、しきい値を適用してグリッドから波を分離します。最後に画像から不要なものを取り除き、最終的な出力は次のようになります

ここに画像の説明を入力

今、これらのセグメント間のピクセル数を使用して、以下の画像に記載されている値を取得したいと考えています.これを行う最良の方法は何ですか?

ここに画像の説明を入力

主に取得したいのは、QR 波の高さと 2 つの Q 波の間の長さ (ピクセル値) です。

これらの値を取得して配列に格納するために以下のコードを実装する方法

public void black(Bitmap bmp)
{
            Color[,] results = new Color[bmp.Width, bmp.Height];
            for (int i = 0; i < bmp.Height; i++)
            {
                for (int j = 0; j < bmp.Width; j++)
                {
                    Color col = bmp.GetPixel(j, i);
                    if (col.R == 0) 
                    {
                        results[j, i] = bmp.GetPixel(j, i);

                    }
           }
      }
}
4

1 に答える 1

3

問題の理論的な (つまり、ソース コードなしの) 概要については、Syeda-Mahmood、Beymer、および Wang のセクション III「Shaped-based Matching of ECG Recordings .

基本的に、白黒画像はデータポイントの配列です。x 軸は単に画像のピクセル単位の幅であり、y 軸は各 x 位置で黒ピクセルの y 位置を平均することによって得られます (必要ありません)。黒い線の高さが 1 ピクセルしかない場合)。

データをより管理しやすくするために、画像から n 番目ごとの x 位置を選択してダウンサンプリングできます。重要なデータを見逃さないように、標準の ECG サンプリング レートを維持することをお勧めします。最新の ECG ハードウェアは多くの場合 1000Hz でサンプリングしますが、Physionet 上の MIT の QRS データベースのデータは 250Hz または 360Hz です。これらの速度のいずれかを使用すると、スキャンされた画像のデータ (25mm) ごとに 1000、250、または 360 ピクセルを読み取ることになります。

于 2012-11-30T01:11:32.390 に答える