1

matlab を使用してスキャンした ECG 画像を処理しようとしています (私は完全な初心者です)。したいこと:- 1.ECG 内のすべての局所的な最大値と最小値を見つけて強調表示する 2.連続する最小値と最大値の間の距離を計算して表示する インターネットからの jpeg 画像を使用しています。グレースケールに変換した後、どうすればよいか途方に暮れています。MATLAB
で画像の極大値を見つけるにはどうすればよいですか?の関数を試しました。 http://www.mathworks.in/matlabcentral/answers/58002-how-to-find-local-maxima-and-minima-of-a-noisy-ecg が、画像には非最大点と非最小点が保持されます変換しますこれに関するヘルプ(またはmatlabで自分自身を改善する方法についてのアドバイス)をいただければ幸いです。

4

2 に答える 2

1

信号のスパイクを探しているように見えるので、次のことをお勧めします。

というベクトルがあるとします。signal

treshold = std(signal); %Multiply with a constant to get a nice result
peak = signal>mean(signal) + treshold;
dip = signal>mean(signal) - treshold;

これにより、信号が常にほぼ同じレベルである場合、すべてのスパイクの位置がわかります。それ以外の場合は、信号全体ではなく、信号の一部に対してこれを実行する必要があります。

ピークとディップの位置がわかれば、それらを分析するのは難しくありません。

于 2013-02-06T15:15:02.223 に答える
1

画像 I の極小値を取得するには:

minima=I(1:end-2,2:end-1)>I(2:end-1,2:end-1) && I(3:end,2:end-1)>I(2:end-1,2:end-1) && I(2:end-1,1:end-2)>I(2:end-1,2:end-1) && I(2:end-1,3:end)>I(2:end-1,2:end-1);

したがって、最小値が 1 で最小値が 0 の行列が得られます (境界線が削除されていることに注意してください)。

x と y の最小リストを取得するには

[x,y]=find(minima);
x=x+1;y=y+1; %Adding the removed border

最小値を取得するには:

J=I(2:end-1,2:end-1);
val=J(minima(:));

2 番目の質問については、あなたが何を望んでいるのかわかりません

于 2013-02-06T16:07:29.447 に答える