Computing Hessian Eigenvalues in Python: How to interpret output of SymmetricEigenAnalysisImageFilter

Why would the output of SymmetricEigenAnalysisImageFilter have 6 channels, and at each pixel there are more than 3 non-zero values (there should only be three eigenvalues)?

This is my code for computing the hessian eigenvalues using python

import itk
hessian_image = itk.hessian_recursive_gaussian_image_filter(
            itk_image, sigma=2.0
#hessian_image size = (6, 188, 217, 259)
        eigen_values_image = itk.SymmetricEigenAnalysisImageFilter(hessian_image)
        #eigen_values_image size = (6, 188, 217, 259)

eigen_values_array = itk.GetArrayFromImage(eigen_values_image, keep_axes=True)
print( eigen_values_array[:,100,100,100] )

array([ -3.0928779 , 1.86561006, 0. , -11.97670084,
6.26783045, 0. ])

Why are there more than 3 non-zero eigenvalues?

Maybe the problem is in wrapping specification? The test instantiates the filter with <SSRT<3>, FixedArray<3> >, whereas the wrapping instantiates with <SSRT<3>, SSRT<3> >.

Does that mean it’s likely wrapped incorrectly and there’s nothing I can do about it at the moment? Or am I using it incorrectly?

I think it is likely wrapped incorrectly.

Sorry I’m new here. Can I create a ticket for fixing this, or report it so that a ticket is created?

Yes, opening a ticket here will make sure we don’t forget about this. In description, link to this forum thread, and potentially provide further information.

Thanks, done.