这里的任务是从 vector 中找到局部最大值(范围)或最小值的数量。我知道如何找到局部最大值/局部最小值(从图中的一个点),但是局部最大值现在在 vector 中聚类在一起。
为了给出一个更清晰的想法,从 vector 中绘制值将产生类似于以下内容的结果:
简单来说,我想找到峰的数量。在这种情况下,为6。但是,峰不是单个点,而是一系列值。如何从 vector 中找到峰的数量(局部最大值的范围)?
如果可以有一些伪代码,代码示例,将不胜感激,建议也将不胜感激。我正在为这个项目使用Visual Studio C++,以及QWT,QT和OpenCV。
最佳答案
我认为应该没有那么困难。只需按顺序扫描所有值,每当您获得阈值水平时,就开始范围,当超出阈值水平时,就结束特定范围。
您将需要过滤掉两个较小的范围。