1

轮廓

我通过以下代码提取了容器横截面的轮廓

 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 131 1291 133];1

我想检测 c 的索引以找到轮廓中的 A(左侧最大值)、B(右侧最大值)、C(左侧最小值)、D(rt 侧最小值)和 E(中间)点。

4

1 回答 1

1

peakdet在公共领域(http://www.billauer.co.il/peakdet.html )发布的功能似乎在第一次尝试时就可以完成这项工作。您可以尝试使用函数的第二个参数来增加/减少选择性。

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

编辑:这个问题可能很有趣:如何区分 MATLAB 中的双峰和单峰阵列?

于 2013-02-06T16:15:20.847 回答