首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MATLAB求含大量噪声数据的极大值

用MATLAB求含大量噪声数据的极大值
EN

Stack Overflow用户
提问于 2010-05-06 16:28:03
回答 1查看 1.3K关注 0票数 4

我在MATLAB中有三个峰值的噪声数据集,并想在上面做一些图像处理。在50x50阵列中,峰值在底部大约是5-9个像素宽。我如何定位这些山峰?MATLAB对我来说是非常新的。这是我到目前为止所做的。

对于我的原始图像,我们称其为array,我尝试了

代码语言:javascript
复制
J = fspecial('gaussian',[5 5], 1.5);
C = imfilter(array, J)
peaks = imregionalmax(C);

但是在峰值之间的基线上仍然有一些噪声,所以我最终得到了大量的局部最大值,实际上就是噪声值。(我试着调整滤镜的大小,但没有用。)我也试过了

代码语言:javascript
复制
peaks = imextendedmax(C,threshold);

其中阈值是由视觉确定的。这是可行的,但肯定不是一个好的方法,因为它显然不是那么健壮。

那么,如何以一种可靠的方式定位这些峰值呢?

EN

回答 1

Stack Overflow用户

发布于 2010-05-06 16:49:11

快速建议:

尝试在matlab medfilt2中使用中值滤波器,它在去除噪声方面比高斯滤波器更有效。高斯卷积滤波器在处理细微噪声时效果更好,并能更好地保留图像。

然后,在提取了仍未分类的峰值后,您应该对每个峰值进行分类,并确定它是噪声还是预期峰值。我建议您研究一下binary image类的函数。特别是看看bwconncomp

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2779592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档