2013-02-06 16 views
1

我試圖處理掃描圖像心電圖用matlab(我是一個完整的新手)發現當地的最小值和最大值的掃描心電圖。我想: - 1.find並突出顯示心電圖 2.compute所有局部最大值和最小值,並顯示我使用從互聯網JPEG圖像連續的最大值和最小值 之間的距離。之後將其轉換灰度圖,我在適合做什麼.I've虧損試過功能
How can I find local maxima in an image in MATLAB? http://www.mathworks.in/matlabcentral/answers/58002-how-to-find-local-maxima-and-minima-of-a-noisy-ecg 但圖像保留了非最大值和非極小points.Will轉換 在任何幫助(或關於如何讓自己在matlab上更好的建議)將不勝感激。使用MATLAB

+1

你能詳細描述一下這個問題嗎?特別是,當您應用找到的解決方案時,問題是什麼? –

+0

我想得到[this](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTRrY4lzmj7awsoqsuqlghvXbR59DpcpNpF5K8z2jA6-RBx48Mt_w),但imregionalmax()和其他人沒有給我我需要的3個高峯在圖像中。我如何處理圖像來獲取這些?在此先感謝。 – Eridanus

+0

@Eridanus至少包含一個有代表性的輸入圖像和您期望的輸出。 – mmgp

回答

1

正如你似乎是尋找在信號峯值我提出以下建議:

假設你有一個載體稱爲signal

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

這可以給你所有的尖峯如果位置信號總是處於大致相同的水平,否則您需要在信號的一部分而不是全部信號上運行。

之後,你有峯的位置和逢低應該不會太難分析它們。

+0

謝謝,一定會試試。 – Eridanus

1

要獲得圖像的局部極小我:

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(:)); 

對於第二個問題,我不明白你想要什麼