图像缩略图

快速二维峰值探测器

版本1.13.0.0(4.97KB)由 纳坦
在嘈杂的2D阵列中查找局部最大值\峰值位置

15.1 k下载

更新2021年5月26日

来自GitHub

在GitHub上查看许可证

在文件交换上查看快速2D峰值查找器

快峰风

一个简单而快速的2D峰值查找器。其目的是要比更复杂的技术更快,同时又能在嘈杂的数据中找到峰值。该代码分析带噪二维图像,并使用鲁棒局部极大值查找器(1像素分辨率)或加权质心(亚像素分辨率)查找峰值。代码设计得尽可能快,所以我把它保持得非常基本。它在使用uint16\uint8图像时最有效,并假设峰值相对稀疏。

该代码需要Matlab的图像处理工具箱,可以在parfor中使用,以加快处理速度。

请列举如下:

纳坦(2021年)。快速二维峰值探测器(//www.tianjin-qmedu.com/matlabcentral/fileexchange/37388-fast-2d-peak-finder),MATLAB中央文件交换。2021年5月26日检索。

代码工作原理:理论上,每个峰值都是一个平滑的点扩散函数(SPF),就像某种大小的高斯函数,等等。在现实中,总是有噪声,比如“盐和胡椒”噪声,它通常有1个像素的变化。由于我们假设峰值的PSF大于1像素,如果我们能去除这些单像素噪声变化,就可以得到该PSF的“真”局部最大值。还有medfilt2,这是一个2D中值过滤器,可以去除“盐和胡椒”的噪音。接下来,我们使用conv2“平滑”图像,这样很有可能每个峰值中只有一个像素对应于“真正的”PSF局部最大值。加权质心方法使用了相同的图像处理方法,不同的是它只是计算了图像处理后得到的每个连通对象的加权质心。虽然这提供了亚像素分辨率,但它可以忽略彼此非常接近的峰值,并运行稍慢。请在相关代码注释中阅读更多关于如何处理这些情况的信息。

投入:

  • d—2D数据原始图像—采用双\单精度浮点、uint8或unit16数组。请注意,如果需要,代码会将原始图像强制转换为uint16。如果图像动态范围介于0和1之间,则我将乘以以拟合uint16。这可能不是一般用途的最佳选择,因此请根据您的需要进行修改。
  • threes -一个介于0和max之间的数字(raw_image(:)),用于删除背景
  • filt-用于平滑图像的过滤器矩阵。滤波器尺寸应与峰值的特征尺寸相对应
  • edg-一个大于1的数字,用于跳过前几个和最后几个“边缘”像素
  • res -在两个寻峰方法之间切换的句柄:1 -局部最大方法(默认)。2 -加权质心亚像素分辨率方法。注意,后一种方法平均多花费20%的时间。
  • fid -如果用户想要将峰值位置保存到文件中,代码假设在使用此函数的脚本中有"fid = fopen([filename], 'w+');"行。

可选输出:

  • 一个1xN的峰坐标向量(x1,y1,x2,y2,…)
  • 除了分之外,cm是一个大小为(d)的二进制矩阵,峰值位置为1。(加权质心万博1manbetx亚像素分辨率方法不支持)

例子:

p = FastPeakFind(图片);

imagesc(图像);等等

情节(p(1:2:结束)、p(2:2:结束),r +)

图一

引用为

纳坦(2021年)。快速二维峰值探测器GitHub (https://github.com/adinatan/fastpeakfind/releases/tag/1.13.0.0)。检索.

MATLAB版本兼容性
使用R2013b创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!
要查看或报告这个GitHub插件中的问题,请访问GitHub存储库.
要查看或报告这个GitHub插件中的问题,请访问GitHub存储库.