Matlabでは、コードの前の段階で特定の要素が選択されたマトリックスを作成しました。マトリックスのこの点から、特定の半径の周囲のすべての隣接間の最大値だけでなく、特定の方向角度での最大値を見つけたいと思います。これを例で説明しましょう。
これは行列 A です。
A =
0 1 1 1 0 0 9 1 0
0 2 2 4 3 2 8 1 0
0 2 2 3 3 2 2 1 0
0 1 1 3 2 2 2 1 0
0 8 2 3 3 2 7 2 1
0 1 1 2 3 2 3 2 1
最初の段階で選択された要素は A(2,4) の4であり、次の要素は最大値である必要があります。たとえば、方向の角度が 315 度、つまりA(5,7)の7です。 .
私が行ったことは、角度に応じて、行列 A をさまざまな象限に分割し、その象限の値のみを使用して新しい行列 (A の部分行列) を作成することです。
したがって、この例では、部分行列は A の第 4 象限になります。
q_A =
4 3 2 8 1 0
3 3 2 2 1 0
3 2 2 2 1 0
3 3 2 7 2 1
2 3 2 3 2 1
そして今、ここに私の質問があります。どうすれば7を抽出できますか?
私ができる唯一のこと(そしてそれが機能すること)は、しきい値を超えるすべての値を見つけて、それらのポイントがどのように方向付けられているかを計算することです。次に、指定された方向と同様の方向 (この例では 315 度) を持つすべての値を保存し、最終的にそれらの中で最大値を見つけます。それは機能しますが、はるかに高速で「よりクリーンな」ソリューションがあると思います。