我已经通过以下代码
提取了船只横截面上的轮廓 imshow(image); % image is not shown
[cx,cy,c,xi,yi] = improfile;
这里c是沿剖面的强度,我用它们绘制它们:
x=1:length(c);
figure
plot(x,c,'o')
axis([0 45 80 150])
它看起来像我上传的那个。 c为33X1强度矢量,其中,c = [123 126 131 138 139 141 143 143 144 141 136 126 102 96 91 100 100 113 109 96 94 90 101 107 116 123 127 130 131 132 131 129 131];
我想检测c的索引以找到A(左侧最大值),B(右侧最大值),C(左侧最小值),D(rt侧最小值)和E(中间)点简介。
答案 0 :(得分:1)
公共域(http://www.billauer.co.il/peakdet.html)中发布的函数peakdet
似乎在第一次尝试时就已完成。您可以尝试使用该函数的第二个参数来更多/更少选择性。
c=[123 126 131 138 139 141 143 143 144 141 136 126 102 96 91 100 100 113 109 96 94 90 101 107 116 123 127 130 131 132 131 129 131];
[ma mi]=peakdet(c,1);
ma =
9 144
18 113
30 132
mi =
15 91
22 90
32 129
编辑:这个问题可能很有意思:How to differentiate between a double peak and a single peak array in MATLAB?