Source code for ewoksndreg.evaluation.evaluation

from typing import Dict
from typing import List

from ..io.input_stack import InputStacks
from ..transformation.homography import Homography
from .eval_metrics import mse_eval
from .eval_metrics import peak_eval
from .eval_metrics import smoothness_eval


[docs] def pre_evaluation(stacks: InputStacks) -> List[str]: """ Evaluates what the most successful stacks for registration might be based on how distinct the phase cross correlation peak is. """ evals = dict() for name, stack in stacks.items(): evals[name] = peak_eval(stack, 0) return sorted(evals, key=evals.get)
[docs] def post_evaluation( aligned_stacks: InputStacks, transformations: Dict[str, List[Homography]], ) -> List[str]: """ Evaluation of the stack after alignment based on the mse error and the smoothness of the transformations. """ errors = dict() for name, aligned_stack in aligned_stacks.items(): transformation = transformations[name] err1 = mse_eval(aligned_stack, 0) err2 = smoothness_eval(transformation, aligned_stack[0].shape) errors[name] = err1 + err2 return sorted(errors, key=errors.get)