ImageJ--Feature Finder插件


Feature Finder 是ImageJ 中的图像模板匹配(Template Matching)插件,用于查找与原型(模板)相同或相似的特征。"相似 "是指图像与原型之间的均方偏差应该很小。

用途

  • 目标检测:通过将已知目标作为模板,在图像中寻找与模板最相似的区域,从而实现目标的检测。

  • 物体跟踪:通过不断更新模板,可以实现对移动目标在视频序列中的跟踪。

  • 字符识别:通过利用字符的模板,可以识别文本中的字符或数字。

特点

优点:

  • 经过(缓慢的)初始计算后,预览提供了一种快速确定相似度阈值的方法。

  • 亚像素精度。

  • 在预览过程中,可以通过对找到的特征进行平均来完善原型。

局限:

  • 仅适用于灰度图像;像素值的任何校准都会被忽略。

  • 只能搜索未旋转(或圆形)和未缩放的特征。

  • 速度较慢,小原型除外(暴力算法,无 FFT)。

  • 预览期间,当进度条处于激活状态时:不要更改对话框中的任何输入,否则会重新启动,耗时更长。

  • 不处理堆栈。

安装

  • 下载Feature_Finder.java

  • 将原始的 Feature_Finder.java 文件复制到 ImageJ 插件文件夹 (plugins) 或其子文件夹中。确保将下载的文件命名为 “Feature_Finder.java”;大写/小写都很重要。

  • 使用 "编译并运行 (Compile and Run)"进行编译,然后按 “确定”。请注意,"编译并运行 "功能目前在 Fiji 上无法使用;作为一种变通方法,请使用文件>新建>脚本,打开 Feature_Finder.java 文件并按 “运行”。

  • 使用 “帮助”>"更新菜单 "或重新启动 ImageJ 使其出现在插件菜单中(如果您已使用 Fiji 脚本编辑器,则无需使用)。

参数选项 (Dialog Options)

  • Prototype from 选择原型 (prototype)。这可以是当前图像或不同图像的 ROI。

  • Output Type 可以是:

    • 点选择:所有特征中心的点 ROI。
    • 计数:找到的特征数量写入结果表。
    • 列表:中心的 x 和 y 像素坐标列表被写入结果表。
    • 列表(校准):与“列表”类似,但将校准的 x 和 y 坐标写入结果表。
    • 点图:一个单独的二值图像,每个特征的中心有一个像素 = 255。
    • 偏差图:单独的浮点(32 位)图像。每个点的值表示原始图像中该位置的周围环境与原型的偏离程度。偏差图独立于“公差”设置。
    • 特征平均值:单独的浮点(32 位)输出图像,所有特征的平均值移动到同一位置。
  • Subtract Background使用减去背景,特征被认为是相同的,独立于任何恒定(相加)背景。

  • Soft Edges 软边缘为原型的近边缘像素赋予的权重小于靠近中心的像素的权重。

  • Distance Min如果要素靠得很近,小于“最小距离”,则仅保留最匹配的要素。

  • Tolerance公差决定了特征与原型的偏差程度。值 0 表示完全匹配,100 表示偏差等于原型的方差。启用“减去背景”后,在公差为 100% 的情况下,原型区域上具有恒定值的图像区域也符合特征。

  • Refine 在预览过程中,设置容差后,您可以按“调整”按钮。这会根据当前选择的所有特征的平均值计算出新的原型。例如,如果原型受到噪声影响,“优化”很有用。在预览期间,该对话框还显示特征数量与原型偏差的直方图以及包含找到的特征数量的消息。

提示和技巧

  • 在预览过程中,直方图右侧经常会出现一个宽阔的峰值。这就是假匹配。请将阈值保持在该峰值以下。

  • 特征应与原型具有相同的灰度对比度。如果不是这种情况,建议选择图像中可能出现的对比度最高的模板。

  • 如果阈值法失败,也可以尝试创建偏差图并对其进行处理(背景减除、高通滤波器、查找最大值…)。

参考

  1. https://imagej.github.io/plugins/feature-finder

  2. https://blog.csdn.net/twnkie/article/details/132154253