--- a +++ b/ants/ops/hessian_objectness.py @@ -0,0 +1,79 @@ +__all__ = ["hessian_objectness"] + +import ants +from ants.decorators import image_method +from ants.internal import get_lib_fn + +@image_method +def hessian_objectness(image, + object_dimension=1, + is_bright_object=True, + sigma_min=0.1, + sigma_max=10, + number_of_sigma_steps=10, + use_sigma_logarithmic_spacing=True, + alpha=0.5, + beta=0.5, + gamma=5.0, + set_scale_objectness_measure=True): + """ + + Interface to ITK filter. Based on the paper by Westin et al., "Geometrical + Diffusion Measures for MRI from Tensor Basis Analysis" and Luca Antiga's + Insight Journal paper http://hdl.handle.net/1926/576. + + Arguments + --------- + image : ANTsImage + scalar image. + + object_dimension : unsigned int + 0: 'sphere', 1: 'line', or 2: 'plane'. + + is_bright_object : boolean + Set 'true' for enhancing bright objects and 'false' for dark objects. + + sigma_min : float + Define scale domain for feature extraction. + + sigma_max : float + Define scale domain for feature extraction. + + number_of_sigma_steps : unsigned int + Define number of samples for scale space. + + use_sigma_logarithmic_spacing : boolean + Define sample spacing the for scale space. + + alpha: float + Hessian filter parameter. + + beta: float + Hessian filter parameter. + + gamma: float + Hessian filter parameter. + + set_scale_objectness_measure: boolean + ... + + Returns + ------- + ANTsImage + + Example + ------- + >>> import ants + >>> image = ants.image_read(ants.get_ants_data('r16')) + >>> hessian_object_image = ants.hessian_objectness(image) + """ + + image_dimension = image.dimension + + libfn = get_lib_fn('hessianObjectnessF%i' % image_dimension) + hessian = libfn(image.pointer, object_dimension, is_bright_object, sigma_min, + sigma_max, number_of_sigma_steps, + use_sigma_logarithmic_spacing, alpha, + beta, gamma, set_scale_objectness_measure) + output_image = ants.from_pointer(hessian).clone('float') + return output_image