Feature Finder

An ImageJ template matching plugin, finds features equal or similar to a prototype (template). “Similarity” means that the mean square deviation between the image and the translated prototype should be low.

What's nice about it

  • After a (slow) initial calculation, preview provides a fast way to determine the similarity threshold.
  • Subpixel accuracy.
  • During preview, possibility to refine the prototype by averaging over features found.

Limitations

  • Works with grayscale images only; any calibration of pixel values is ignored.
  • Only searches for unrotated (or circular) and unscaled features.
  • Slow except for very small prototypes (brute-force algorithm, no FFT).
  • During preview, while the prograss bar is active: don't change any input in the dialog box, otherwise it will restart and take even longer.
  • Does not process stacks.

Dialog Options

Screenshot

  • Prototype from selects the prototype. This can be a ROI of the current image or a different image.
  • Output Type can be:
    - Point Selection: A Point ROI of the centers of all features.
    - Count: The number of features found is written to the Results Table.
    - List: A list of x and y coordinates of the centers is written to the Results Table.
    - Point Map: A separate binary image with one pixel=255 at the center of each feature.
    - Deviation Map: A separate float (32-bit) image. The value at each point indicates how much the surroundings of this position in the original image deviate from the prototype. The Deviation Map is independent of the 'Tolerance' settings.
    - Average of Features: A separate float (32-bit) output image with the average of all features shifted to the same position.
  • With Subtract Background, features are considered the same independent of any constant (additive) background.
  • Soft Edges gives less weight to the near-edge pixels of the prototype than to those near the center.
  • If features are close together, closer than Distance Min, then only the one with the best match is kept.
  • 'Tolerance' determines how much a feature may deviate from the prototype. A value of 0 means an exact match, 100 means that the deviation equals the variance of the prototype. With 'Subtract Background' on, at a tolerance of 100% also image areas with a constant value over the prototype area qualify as features.
  • During preview, after setting the tolerance you may press the Refine button. This calculates a new prototype from the average of all features currently selected. 'Refine' is useful, e.g., if the prototype suffers from noise.

During preview, the dialog also displays a histogram of the number of features vs. deviation from the prototype and a message with the number of features found. (Due to a Java bug, updating of the number of features may sometimes fail with Mac OS X.)

Tips and tricks

  • During preview, the histogram often shows a broad peak at the right side. These are the false matches. Keep the threshold below this peak.
  • Features should have the same gray level contrast as the prototype. If this is not the case, it is advisable to select a template with the highest contrast that may occur in the image.
  • If thresholding fails, you can also try to create a Deviation Map and work on it (background subtraction, high-pass filter, find maxima …)

Usage

  • Copy Feature_Finder.java into the ImageJ plugins folder or a subfolder thereof. Make sure that you name the downloaded file ”Feature_Finder.java”; uppercase/lowercase matters.
  • Compile with “Compile and Run” and press “OK”. Disregard any deprecation warning.

License

Version history

Version 2010-Dec-28, Michael Schmid: Plugin released
Version 2012-Dec-23, Michael Schmid: Uses parallel processing on multi-core machines (faster)

plugin/analysis/feature_finder/start.txt · Last modified: 2015/01/11 16:35 by schmid
Back to top
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0