图像缩略图

快速二维峰值探测器

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

15.1K下载

更新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局部最大值。加权质心方法使用相同的图像处理,不同的是它只计算图像处理后获得的每个连接对象的加权质心。虽然这提供了亚像素分辨率,但它可以忽略彼此非常接近的峰值,并且运行稍慢。Read有关如何处理这些情况的更多信息,请参见相关代码注释。

投入:

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

可选输出:

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

例子:

p=快速峰值风(图像);

imagesc(图像);等等

绘图(p(1:2:end)、p(2:2:end)、‘r+’)

图一

引用为

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

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

社区寻宝

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

开始打猎吧!
要查看或报告此GitHub加载项中的问题,请访问GitHub存储库.
要查看或报告此GitHub加载项中的问题,请访问GitHub存储库.