Extract object edges

Extracts edge and interior objects for each object in a specified set.

Description

Extracts edge and interior objects for each object in a specified set. The boundary defining the transition between edges and interiors can be specified either at a fixed distance from the object edge or as a percentage of the maximum edge-centroid distance for each object. Output edge and interior objects are stored as children of the associated input object.

Parameters

Parameter Description
Input objects Objects from workspace for which edge and/or interior regions will be extracted. Any extracted regions will be children of the associated input objects.
Create edge objects When selected, an edge object will be created for each input object. Edge objects contain only coordinates from the input object within a given distance of the object edge. Output edge objects will be children associated with the relevant input object. The edge objects will be stored in the workspace with the name specified by "Output edge objects".
Output edge objects If "Create edge objects" is selected, this is the name assigned to output edge objects.
Create interior objects When selected, an interior object will be created for each input object. Interior objects contain only coordinates from the input object a given distance from the object edge or greater (i.e. they contain any points from the input object which aren't assigned as "edge" objects). Output interior objects will be children associated with the relevant input object. The interior objects will be stored in the workspace with the name specified by "Output interior objects".
Output interior objects If "Create interior objects" is selected, this is the name assigned to output interior objects.
Edge determination Controls how the boundary between "edge" and "interior" objects is defined:
  • "Distance to edge" The boundary is defined by a fixed distance value specified by "Distance". Any input object coordinates within (less than or equal to) this distance of the object edge can be output as "edge" coordinates, otherwise they can be output as "interior" coordinates.
  • "Object measurement" The boundary is defined by a measurement value associated with each object. The measurement is specified by "Measurement name". Any input object coordinates within (less than or equal to) this distance of the object edge can be output as "edge" coordinates, otherwise they can be output as "interior" coordinates.
  • "Parent object measurement" The boundary is defined by a measurement value associated with a parent of each object. The measurement is specified by "Parent measurement name". Any input object coordinates within (less than or equal to) this distance of the object edge can be output as "edge" coordinates, otherwise they can be output as "interior" coordinates.
  • "Percentage of maximum distance to edge" The boundary is defined as a percentage of the maximum distance from the edge of the object to its centroid. As such, this boundary value will vary from object to object in terms of the absolute width of edge objects.
Distance If "Edge determination" is set to "Distance to edge", this is the fixed distance value that defines the boundary between edge and interior objects. It is assumed to be specified in pixel units unless "Calibrated distances" is selected, in which case they are assumed in calibrated units.
Measurement name If "Edge determination" is set to "Object measurement", this is the object measurement (associated with the object being processed) that defines the boundary between edge and interior objects. It is assumed to be specified in pixel units unless "Calibrated distances" is selected, in which case they are assumed in calibrated units.
Parent objects If "Edge determination" is set to "Parent object measurement", this is the parent of the input object that will be used as a source for the edge width measurement specified by "Parent object measurement".
Parent measurement name If "Edge determination" is set to "Parent object measurement", this is the object measurement (associated with a parent of the object being processed) that defines the boundary between edge and interior objects. It is assumed to be specified in pixel units unless "Calibrated distances" is selected, in which case they are assumed in calibrated units.
Calibrated distances When selected, the fixed boundary distance specified by "Distance" is assumed to be in calibrated units. Otherwise, the fixed distance is in pixel units.
Percentage If "Edge determination" is set to "Percentage of maximum distance to edge", this is the percentage of the maximum centroid-edge distance for an object that will be used to calculate the edge/interior boundary location. Percentages approaching 0% will put the boundary increasingly close to the object edge (more detected as "interiors"), while percentages approaching 100% will have the boundary increasingly close to the object centroid (more detected as "edges").
Weight mode The pre-defined set of weights that are used to compute the 3D distance transform using chamfer approximations of the euclidean metric (descriptions taken from https://ijpb.github.io/MorphoLibJ/javadoc/):
  • "Borgefors (3,4,5) (Emax = 0.1181)" Use weight values of 3 for orthogonal neighbors, 4 for diagonal neighbors and 5 for cube-diagonals (best approximation for 3-by-3-by-3 masks).
  • "Chessboard (1,1,1)" Use weight values of 1 for all neighbours.
  • "City-Block (1,2,3) (Emax = 0.2679)" Use weight values of 1 for orthogonal neighbors, 2 for diagonal neighbors and 3 for cube-diagonals.
  • "Svensson (3,4,5,7) (Emax = 0.0809)" Use weight values of 3 for orthogonal neighbors, 4 for diagonal neighbors, 5 for cube-diagonals and 7 for (2,1,1) shifts. Good approximation using only four weights, and keeping low value of orthogonal weight.