0

イメージに示すように、バイナリ ポリゴン イメージがあります。X軸に対する画像の主方向を見つけたい。主方向と X 軸を青い線で示しています。これは PCA を使用して行うことができますが、私の問題は、非常に小さな長方形が約 1000 ピクセルになり、約 100 ポリゴンの主方向を見つける必要があることです (ポリゴンは任意の形状にすることができます)。

私が考えた1つのアプローチは次のとおりです。その長方形を、間隔(たとえば)5度の角度で方向付けられた線に投影します。最大の分散を持つ投影は、目的の投影軸であり、したがって、それが目的の角度です。しかし、これも貪欲なアプローチに該当するため、時間がかかります。よりスマートなアプローチはありますか?

また、誰かが PCA を使用してこれを行うための正確な手順を説明できれば、役に立ちます。手順はわかっています。 1. 共分散行列を取得します。2. 最大の固有値に対応する最上位の固有ベクトルを取得します -> それが主方向になります。

しかし、どこでもよく読む次の声明には混乱しています。

列ベクトル:[0.5 0.5]は最初の主成分であり、最大分散の方向を示します。X軸に平行になるようにデータを回転させる必要がある角度を正確に計算できますか。

ここに画像の説明を入力

4

1 に答える 1

2

最大固有値に関連付けられた固有ベクトルを計算します。それを v と呼びます。 v を正規化します。 v = v/norm(v);

それと水平方向の間の角度を計算します: angle=acos(sum(v.*[1,0]))

-角度で回転、変換行列 T = [cos(-角度) -sin(-角度); sin(-angle) cos(-angle)]、すべてのポイントにその行列を掛けます。すべてのポリゴンに対してそれを行います。

于 2013-02-14T04:58:00.763 に答える