Skip to content

Classify Objects

The Classify Objects command evaluates every object against a set of shape criteria and, optionally, an intersection criterion. Each object either matches (passes every enabled criterion) or does not, and the selected match handling mode decides what happens to the object’s class labels in each case - add a class, strip a class, or reclassify entirely.

This is where raw segmentation output (“every connected group of bright pixels”) turns into biological meaning (“this is a nucleus, this is an EV - that speck isn’t”) - the criteria exist because segmentation almost always over-detects, picking up noise, debris, and imaging artifacts alongside genuine objects. Because match handling is itself configurable, the same command also covers narrowing an already-named population and reclassifying objects based on what they overlap.

Objects are measured against shape/intersection criteria; the match handling mode decides what happens to matching and non-matching objects

ParameterDescription
Input ClassesRestrict evaluation to objects that already carry every one of these classes. Leave empty to evaluate every object regardless of its current class

Objects created by Extract Objects carry their segmentation class as an object class from the start, so a fresh, unfiltered population can be selected here the same way as an already-named class from an earlier Classify Objects step. See Object Classes for how that numbering works and why listing more than one class here narrows the population rather than widening it.

An object matches only if it satisfies every criterion below - they combine as a logical AND, not a choice of one.

All shape-based criteria accept the field’s maximum representable value as “no limit” for the upper bound and 0 for “no lower limit” - there is no dedicated “disabled” sentinel, so leaving a bound at its default effectively disables it.

CriterionDescription
Min area / Max areaObject area, in the chosen Size unit
Min circularity / Max circularityRange 0.0-1.0; 1.0 = perfect circle
Min solidity / Max solidityRatio of area to convex hull area (0-1)
Min aspect ratio / Max aspect ratioFitted-ellipse major/minor axis ratio
Min eccentricity / Max eccentricityElongation from fitted ellipse (0 = circle, 1 = line segment)
Min Feret / Max FeretBounding-box diagonal, in the chosen Size unit
Allow edge touchingIf disabled, objects that touch the image border fail the match

Shape criteria that depend on physical size (area, Feret) use a single Size unit shared by both:

  • Pixels (px) - absolute pixel count
  • Nanometres (nm) - converted using the pixel size from image metadata

There is no separate intensity filter in Classify Objects - mean/min/max/sum intensity per channel are recorded as metrics on every object, but they aren’t part of the match criteria here.

An optional, additional criterion evaluated alongside the shape criteria above - an object must satisfy this too, not instead.

CriterionDescription
Intersecting WithAn object class to test overlap against. When set, the object only matches if it also overlaps at least one object of this class by at least Min intersection area
Min intersection areaMinimum overlap area, in the chosen Size unit. Has no effect while Intersecting With is unset

Unlike the shape criteria, this one is disabled entirely by leaving Intersecting With unset (no sentinel value needed) rather than by relaxing a threshold. It corresponds to the Intersection Count metric - counting how many objects from another class overlap a given object - used here as a pass/fail gate rather than just a recorded value.

Every object is evaluated once against the criteria above to get a single match / no match result. Match Handling then decides what that result does to the object’s classes:

Mode (GUI label)On matchOn non-match
Add class on matchAdd Output Tag to the object’s existing classesNo change
Add class on mismatchNo changeAdd Output Tag to the object’s existing classes
Remove output class on matchRemove Output Tag from the objectNo change
Remove output class on mismatchNo changeRemove Output Tag from the object
Remove objects matching criteriaClear all classes from the objectNo change
Keep objects matching criteria (default)No changeClear all classes from the object
Reclassify on matchClear all classes, then add Output TagNo change
Reclassify on mismatchNo changeClear all classes, then add Output Tag
  • First-time classification (segmentation class → a real named class) and reclassifying by overlap (moving objects into another class based on what they intersect) are both worked through in the examples below.
  • Narrowing an already-named population with a stricter filter, without renaming it: leave Output Tag unset and use the default Keep objects matching criteria - objects that fail the new criteria are dropped; objects that pass keep their existing class untouched.
  • Tagging without removing anything else: use Add class on match to layer an additional class onto objects that already carry others, e.g. flagging objects that also satisfy a secondary criterion.
Input Classes: (empty - segmentation class from Extract Objects)
Min area: 3 px²
Min circularity: 0.1
Allow edge touching: true
Match Handling: Reclassify on match
Output Tag: ch1@spot

Objects larger than 3 px² with any circularity are reclassified as ch1@spot; everything else keeps only its segmentation class and is dropped from all named-class results.

Input Classes: ch1@spot
Intersecting With: tetraspeck@spot
Min intersection area: 1 px²
Match Handling: Reclassify on match
Output Tag: tetraspeck@spot

Any ch1@spot object that overlaps a tetraspeck@spot calibration bead is moved into the tetraspeck@spot class, removing it from the spot count - the pattern used in Spot Count to exclude bead artefacts.