Proposals:Calculators Architecture

From KitwarePublic
Revision as of 15:53, 26 July 2013 by Dirkpadfield (talk | contribs)
Jump to navigationJump to search

Proposal

Decide on the best architecture for how to implement ITK Calculators. Should they derive from ProcessObject and be part of the pipeline, or should they inherit from Object and be separate from the pipeline?

Current Situation

Calculators: Based on Object() Must have a Compute() Context specific Set/Get methods Give examples:

New code: Provides Compute() that calls Update() Based on ProcessObject Also has Update, SetInput, GetOutput Do they have SetImage/GetThreshold methods also?

How to write a new calculator? Drawbacks: Can't hot-swap calculators, pipeline overhead Calculators were designed to be fast and separate from pipeline structure Example: Otsu. The only option is to call one from the other. Cannot take advantage of inheritance. Method need to be explicitly called on the one being instantiated. Rename these new 10? Change name to have HistogramFilter in the name? Take guts out and put them in real calculators that are called from the calculators? Having layer above calculators to make the inputs and outputs more consistent


Existing limitations

Proposed changes

Current Status



ITK: [Welcome | Site Map]