Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature sets table #408

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

feature sets table #408

wants to merge 10 commits into from

Conversation

tibuch
Copy link
Contributor

@tibuch tibuch commented Jun 14, 2016

This PR adds so called ComputerSets (<==> FeatureSet). A ComputerSet holds different ComputerOps which build a common known measurement-group.

Now all FirstOrderStats ops could be combined in a FirstOrderStatsComputerSet. Same goes for different groups like Zernike, Histogram or Geometric2D (and many others which have to be implemented).

There are non-configurable and configurable ComputerSets. Configurable means that each op of this ComputerSet could either be active or inactive.

The ComputerSets are processed by the ComputerSetProcessor. There are three different implementations. One for ComputerSets based on Iterables (FirstOrderStats), one for ComputerSets based on LabelRegions (Geometric2D) and one for ComputerSets which should be computed over ROIs (FirstOrderStats on every segment of a LabelRegions).

To a ComputerSetProcessor arbitrarily many ComputerSets could be added. The ComputerSetProcessor will create a Table with a column for each computed op of every ComputerSet. The IterableComputerSetProcessor creates a table with one output row and the LabelRegions- and ROIComputerSetProcessor creates a output row for each segment of the Labeling.
The ComputerSetProcessor takes care of unique column names in the output-table.

// create a FirstOrderStatsComputerSet with all Computers activated
FirstOrderStatsComputerSet<Iterable, DoubleType> stats = ops.op(FirstOrderStatsComputerSet.class,
                Iterable.class);

// create a FirstOrderStatsComputerSet with only Mean and Max Computers activated
FirstOrderStatsComputerSet<Iterable, DoubleType> stats1 = ops.op(FirstOrderStatsComputerSet.class,
                Iterable.class, Arrays.asList(new Class[] { Mean.class, Max.class }));

// create an IterableComputerSetProcessor which holds the two ComputerSets
        IterableComputerSetProcessor<FloatType, DoubleType> processor = ops.op(IterableComputerSetProcessor.class,
                Iterable.class, new ComputerSet[] { stats, stats1 }, new DefaultComputerSetTableService<>());

// compute the ComputerSets on img
        Table<Column<DoubleType>, DoubleType> result = processor.compute1(img);

@dietzc and @ctrueden please take a look.

*/
@Override
protected Iterable getFakeInput() {
return ComputerSetProcessorUtils.getIterable();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this problem can be resolved as soon as we have introduced the new or better matching which support proxy objects.

@tibuch
Copy link
Contributor Author

tibuch commented Jun 16, 2016

Should I rewrite the history again?

@dietzc
Copy link
Member

dietzc commented Jun 19, 2016

I think thats fine. Let's wait with merging until after the hackathon, such that we potentially get rid of the Matcher workarounds?

@tibuch tibuch force-pushed the feature-sets-table branch 2 times, most recently from 11fe299 to 10ab745 Compare March 1, 2017 13:24
@tibuch tibuch force-pushed the feature-sets-table branch from 10ab745 to 88fd712 Compare March 1, 2017 14:01
@tibuch
Copy link
Contributor Author

tibuch commented Mar 1, 2017

I rebased this branch. Maybe we can merge this PR soon :)

@ctrueden
Copy link
Member

ctrueden commented Dec 5, 2017

@tibuch This is still waiting on the generic type matching, right? I'll add a label assuming so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants