diff --git a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h index 98c7bba8edc51233f4a44b05522198f19515ff10..07a616c792bd5538da82cc2330b05335acdbdb55 100644 --- a/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h +++ b/Modules/Filtering/Polarimetry/include/otbSinclairToReciprocalCovarianceMatrixFunctor.h @@ -72,11 +72,18 @@ public: const ComplexType S_hv = static_cast<ComplexType>(Shv); const ComplexType S_vv = static_cast<ComplexType>(Svv); - result[0] = static_cast<OutputValueType>( std::norm( S_hh ) ); + /*result[0] = static_cast<OutputValueType>( std::norm( S_hh ) ); result[1] = static_cast<OutputValueType>( S_hh*vcl_conj(S_hv) ); result[2] = static_cast<OutputValueType>( S_hh*vcl_conj(S_vv) ); result[3] = static_cast<OutputValueType>( std::norm( S_hv ) ); result[4] = static_cast<OutputValueType>( S_hv*vcl_conj(S_vv) ); + result[5] = static_cast<OutputValueType>( std::norm( S_vv ) );*/ + + result[0] = static_cast<OutputValueType>( std::norm( S_hh ) ); + result[1] = static_cast<OutputValueType>( vcl_sqrt(2.0)*S_hh*vcl_conj(S_hv) ); + result[2] = static_cast<OutputValueType>( S_hh*vcl_conj(S_vv) ); + result[3] = static_cast<OutputValueType>( 2.0*std::norm( S_hv ) ); + result[4] = static_cast<OutputValueType>( vcl_sqrt(2.0)*S_hv*vcl_conj(S_vv) ); result[5] = static_cast<OutputValueType>( std::norm( S_vv ) ); return (result);