Clean | Gets rid of small objects. Can choose matrix and radius threshold (used 10 here). Built into Threshold, but not Simple Threshold. |
| |
Complement | Inverts a binary. |
| |
Smooth | Smooths binary layer by using a sphere of the specified radius. Built into Threshold but not Simple Threshold. Used radius ~ 1 micron here. |
| |
Separate Objects | Separates nearby binary objects. Can select number of iterations (chose 5 here). Used color by ID on the binary layer to better show separation. Built into Threshold but not Simple Threshold. |
| |
Fill Holes | Closes small holes in a binary layer. Built into Threshold but not Simple Threshold. Did not have much effect on the example image. |
| |
Open | Uses Erode followed by Dilate for a specified number of iterations, which cleans up small noise while leaving bigger objects alone. Used 5 iterations here, which was enough to eliminate most of the small objects. |
| |
Close | Performs Dilate then Erode for a specified number of iterations, which closes holes in objects. Used 5 iterations here. |
| |
Erode | Compares voxels to their surroundings and sets {1} voxels to {0} if there is a neighboring {0}, which shrinks objects. Can choose matrix and number of iterations, used 2 here. |
| |
Dilate | Compares voxels to their surroundings and sets {0} voxels to {1} if there is a neighboring {1}, which expands objects. Can choose matrix and number of iterations, only used 1 here and the binary region was still significantly expanded. |
| |
Close Holes | Another option to fill small holes in a 3D layer. Can choose matrix and number of iterations, unlike Fill Holes. However, using 10 iterations did not have much effect. |
| |
Circular Open/Circular Close/Circular Erode/Circular Dilate/Circular Clean/Circular Close Holes | Alternate methods of performing the operations above, using a sphere of the specified radius instead of a square matrix of voxels. |
Linear Open Z/Linear Close Z/Linear Erode Z/Linear Dilate Z | More options for matrix-based image processing but use linear matrices in the Z-direction. Can choose number of iterations, the example here is 3 iterations of linear dilate, which has the effect of extruding objects in the Z direction. These options basically make objects more cylindrical and less conical. |
| |
Centers | Marks the geometric center of each binary object. |
| |
Centroids | Marks the center of mass of each object, requires a color layer in addition to the binary to calculate density. Brighter parts of the image are weighted more. |
| |
Distance Function | Creates a new floating point layer that stores each {1} voxel’s distance to the nearest {0} voxel. |
| |
Convex Hull | Extends object boundaries until objects become convex. Clearly encountered a bug in the example. |
| |
Medial Axis | Marks each object’s medial axis, which somewhat resembles skeletonizing. |
| |
Watershed | Floods regions from either bright areas to dark areas or dark areas to bright areas. This makes all of the space filled except for borders between objects. If binary is inverted, the boundary is left. |
| |
Grow Objects | Expands objects by the specified radius but keeps them as separate objects from each other. |
Grow Regions | Expands objects until their borders have intensity of the specified bounds. Can choose bright regions or dark regions. |
Skeleton | Skeletonizes 3D objects, which drastically reduces volume while keeping general extent of objects. |
| |
Detect Branching | Takes a skeletonized layer and puts voxels at branch points. |
| |
Detect Endings | Puts voxels at ending points of a skeletonized layer. |
| |
Filter Objects | Preserves objects meeting the selected criteria while removing all others. Takes a binary and a color layer. Lots of options to choose from, such as intensity, volume, or length, and each has its own slider. |
Select Objects | Takes a binary layer and a table. Outputs a binary layer that contains only objects in the table. |
Delete Objects | Takes a binary layer and a table. Outputs a binary layer that excludes objects includes in the table. |
Touching Borders | Removes binary objects from the layer that touch the image borders. The top and bottom faces of the z stack count, so only small objects confined to the middle frames will be preserved. |
Touching Frame | Removes objects outside of a frame with the specified dimensions (the name is misleading). Can choose one of 3 options for what happens to objects touching the frame. |
Plane | Inserts a plane of the specified dimensions into the binary layer. Can choose which plane it is parallel to and how it affects the existing layer (Copy, which just creates a new layer; OR, which keeps the existing layer and adds the plane; AND, which keeps only portions of objects intersecting the plane; or Subtract, which removes objects overlapping with the plane). |
Connect | According to the NIS website this node connects 2D slices from adjacent layers into 3D objects and is not necessary because other options do this automatically. |
Connect Cells | Connects objects that have a lot of overlap between neighboring layers and separates objects with less overlap. Has the overall effect of causing separation. |
Color by ID | Colors objects so they can be more easily distinguished. Used this node a lot for examples above. |
Color by Value | Like 2D Color by Value, color codes objects based on values from an input table. Takes some work to set up. Colored by object volume in this example. |
| |
Renumber Objects | Like 2D Renumber Objects, uses a binary layer from earlier in the recipe to assign objects in a new layer the same IDs they had earlier. |
Renumber Using Table | Like Renumber Objects but pulls ID number data from a specified column of a table. |