2D 配列 (つまり、構造テンソル フィールド) から構造テンソルを計算するにはどうすればよいですか?
実装で何が間違っているのかわかりません。私の場合、2D 配列は 2D グレースケール画像です。C++ と Eigen を使用して行っていることの概要を次に示します。
// the 2D grey-scale image, represented by a 2D array of doubles
ArrayXXd img;
// compute the gradient vector field, which produces a 2D array of 2D vectors
typedef Array<Vector2d, Dynamic, Dynamic> ArrayXXv2;
ArrayXXv2 g = gvf(img);
// compute the outer-product of each element in g to get a 2x2 matrix, e.g.,
Matrix<double, 2, 2> st00 = g(0,0) * g(0,0).transpose();
st00 は img(0,0) の構造テンソルになりましたね。