Source code for ewoksndreg.tasks.reg2d_features

from ewokscore.task import Task
from ..io.input_stack import input_context
from ..features import registration

__all__ = ["Reg2DFeatures"]


[docs] class Reg2DFeatures( Task, input_names=["imagestack", "detector", "matcher", "mapper", "transformation_type"], optional_input_names=["inputs_are_stacks", "reference"], output_names=["transformations", "features", "matches"], ): """Use an feature-based registration method to calculate transformations to register the images in the stack."""
[docs] def run(self): detector = registration.FeatureDetector.get_subclass(self.inputs.detector)() matcher = registration.FeatureMatching.get_subclass(self.inputs.matcher)() mapper = registration.FeatureMapping.get_subclass(self.inputs.mapper)( self.inputs.transformation_type ) with input_context( self.inputs.imagestack, inputs_are_stacks=self.get_input_value("inputs_are_stacks", None), ) as stack: features = registration.detect_features(stack, detector) matches = registration.match_features( stack, features, matcher, reference=self.get_input_value("reference", 0), ) self.outputs.transformations = registration.transformations_from_features( matches, mapper ) self.outputs.features = features self.outputs.matches = matches