Module ij
Package ij.plugin.filter

# Class FractalBoxCounter

java.lang.Object
ij.plugin.filter.FractalBoxCounter

All Implemented Interfaces:
  `PlugInFilter`

public class FractalBoxCounter extends Object implements PlugInFilter
Calculate the so-called "capacity" fractal dimension. The algorithm is called, in fractal parlance, the "box counting" method. In the simplest terms, the routine counts the number of boxes of a given size needed to cover a one pixel wide, binary (black on white) border. The procedure is repeated for boxes that are 2 to 64 pixels wide. The output consists of two columns labeled "size" and "count". A plot is generated with the log of size on the x-axis and the log of count on the y-axis and the data is fitted with a straight line. The slope (S) of the line is the negative of the fractal dimension, i.e. D=-S. A full description of the technique can be found in T. G. Smith, Jr., G. D. Lange and W. B. Marks, Fractal Methods and Results in Cellular Morphology, which appeared in J. Neurosci. Methods, 69:1123-126, 1996. --- 12/Jun/2006 G. Landini added "set is white" option, otherwise the plugin assumes that the object is always low-dimensional (i.e. the phase with the smallest number of pixels). Now it works fine for sets with D near to 2.0

## Field Summary

### Fields inherited from interface ij.plugin.filter.PlugInFilter

`CONVERT_TO_FLOAT, DOES_16, DOES_32, DOES_8C, DOES_8G, DOES_ALL, DOES_RGB, DOES_STACKS, DONE, FINAL_PROCESSING, KEEP_THRESHOLD, NO_CHANGES, NO_IMAGE_REQUIRED, NO_UNDO, NO_UNDO_RESET, PARALLELIZE_IMAGES, PARALLELIZE_STACKS, ROI_REQUIRED, SNAPSHOT, STACK_REQUIRED, SUPPORTS_MASKING`

## Constructor Summary

Constructors
Constructor
Description
`FractalBoxCounter()`

## Method Summary

Modifier and Type
Method
Description
`void`
`run(ImageProcessor ip)`
Filters use this method to process the image.
`int[]`
`s2ints(String s)`
Breaks the specified string into an array of ints.
`int`
`setup(String arg, ImagePlus imp)`
This method is called once when the filter is loaded.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### FractalBoxCounter

public FractalBoxCounter()

## Method Details

### setup

public int setup(String arg, ImagePlus imp)
Description copied from interface: `PlugInFilter`
This method is called once when the filter is loaded. 'arg', which may be blank, is the argument specified for this plugin in IJ_Props.txt or in the plugins.config file of a jar archive containing the plugin. 'imp' is the currently active image. This method should return a flag word that specifies the filters capabilities.

For Plugin-filters specifying the `PlugInFilter.FINAL_PROCESSING` flag, the setup method will be called again, this time with arg = "final" after all other processing is done.

Specified by:
  `setup` in interface `PlugInFilter`

### run

public void run(ImageProcessor ip)
Description copied from interface: `PlugInFilter`
Filters use this method to process the image. If the `PlugInFilter.DOES_STACKS` flag was set, it is called for each slice in a stack. With `PlugInFilter.CONVERT_TO_FLOAT`, the filter is called with the image data converted to a FloatProcessor (3 times per image for RGB images). ImageJ will lock the image before calling this method and unlock it when the filter is finished. For PlugInFilters specifying the `PlugInFilter.NO_IMAGE_REQUIRED` flag and not the `PlugInFilter.DONE` flag, run(ip) is called once with the argument `null`. Use ip.getSliceNumber() to get the stack position (1-n).

Specified by:
  `run` in interface `PlugInFilter`

### s2ints

public int[] s2ints(String s)
Breaks the specified string into an array of ints. Returns null if there is an error.