• ベストアンサー

2次元平面上の角度分布の同定方法

数学をご専門とされておられる方々にご教示いただきたく存じます。 2次元平面上に、原点から任意の点への線分が多数与えられているとします。 それらの線分の角度 (無論角度の基準は何等かの方法で得ねばなりませんが) の平均等のスペックを得たいのです。 しかしこの角度は循環分布である上、角度は回転により複数のラベルを持ちます。 そのため、上述の値を求める方法に妙案が浮かばず、大変困っております。 ご多忙のところ誠に恐縮には存じますが、どうかご教示の程何卒宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • tgb
  • ベストアンサー率78% (32/41)
回答No.6

 30度の角と40度の角を平均すると、普通は35度になると言う答えが返ってくると思います。しかし、見方を変えれば215度という答えの可能性も考えられます。数の平均と言うことからすれば35度以外は考えられませんが中間の方向と言うことからすると180度を超えて広がった2つの線の方向の平均の方向と考えれば215度の方向になるわけです。この例から、平均の方向を定義しようとすると多義的になって問題が起こりそうだと分かります。2つの角ならこのようなことは簡単に見通せますが多数の角の平均を求めようとする場合はどうなるかのかと言うのが質問者さんの悩みだと思います。実例で計算してみると基準の方向の取り方によって答えが一定せず、様々になることが確認できます。  でもこれはそれほど複雑ではなく、単純に整理できると思います。整理のポイントは何らかの基準ですでに与えられている角度から基準の方向を元に測った角度への変換の際にどのように行っているかに注意することだと思います。角度の測り方の2通りのうち0から360で考えることにします。(-180から180も変換の違いに注意すればできると思いますが少し煩雑になりそう)  a_i:与えられた角度(i=1~N)  b :基準の角度 とすると変換後の角度b_iは  b_i=a_i-b      (a_i-bが負にならない:case1)  b_i=a_i-b+360  (上以外:case2) となります。 従ってこのb_iの平均cはcase2となる場合がm個あるとして  c=(Σ(a_i-b)+360*m)/N   =c0-b+360*m/N     c0=(Σa_i)/N と求まります。cを元の角度の測り方に変換するにはcにbを加えて360以下ならそのまま、360を超えたら360を引くと言う操作を行います。 これから基準の取り方によって様々の値をとり得ることの様子がはっきりしたと思います。  多義性の問題のうち最初の例で考えると、見方の違いというのは基準角の取り方の違いに対応し、基準の角度を30から40の間に取った場合は平均値は215、それ以外(2つの角の外側と言えるでしょうか)では35になると言うことが分かると思います。 (補足) ・上に述べたように基準角の選び方で結果が異なることがはっきりしたので、これを含めて何らかの対策を講じる必要があると思います。 ・2次元平面上の絵などを、自動的に一定の方向へ向けるために回転させたいと言うことですが、きちんと上下を定めた方向に回転したいと言うことであればかなり難しい問題となるのではないでしょうか。上で計算される平均の角度が求めるべき画像の回転角とどう関係するのかは質問や補足の情報からはよく分かりませんが、画像の中の特定の1点と複数の点から上のように平均角を計算して画像の方向を定義しようとしているとするなら、上のような問題は必然的に出てきますし、回避できないと思いますので、別の方向で考えた方がいいようにも思えます。

01461A
質問者

お礼

ありがとうございます。質問の意図を詳細に書き込むことができない事情がありまして、皆様には大変ご迷惑をおかけしましたことを、どうかご容赦下さい。 ご指摘の通り、この多義性の問題を回避する尺度か何かを見つけねばならないことがわかりました。本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.5

例1 / 方法1 (20+ 40+ 60+ 120+ 140+ 160)/6 = 540/6 = 90 ですので、0は計算間違いと思いますが。 例2. / 方法1 (-170 + -160 + -150 + 150 + 160 + 170)/6 = 0 例2. / 方法2 通常、-170 は 190と表現するとおもいますので ( 190 + 200 + 210 + 150 + 160 + 170)/6 = 1080/6 = 180 だと思いますが。 やはり、方法1でOKとなりますが。 方法1が問題になるのは、170,-170,-150というようなデータの場合で (170 + -170 + -150)/3 = -50 (170 + 190 + 210)/3 = 190 のようなケースでしょう。 これで計算が違うなら、私も何を求めようとしているのか判りません。

01461A
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.4

やっぱり何をしようとされているのか、さっぱり分かりません。 弧度法って、ラジアンで測ることだったと思いますけど、それはさておき、 > 例1. > 弧度法で20, 40, 60, 120, 140, 160の角度があるとします。 > 方法1.で平均0が得られ、満足。 0度を右にとると、上記のベクトルはすべて多かれ少なかれ上を向きますよね。 平均が右方向で満足というのは、私の理解を超えます。 > 例2. > 弧度法で-170, -160, -150, 150, 160, 170の角度があるとします。 > 方法1.では平均が180となり、不満足。 > 方法2.では平均が0となり、満足。 同様に、すべて左方向のベクトルですから、180度=左方向で満足かと思いきや、 やはりこれも平均は右方向だという。不思議極まりない。 > 例3. > 弧度法で-180, -135, -90, -45, 0, 45, 90の角度があるとします。 > 方法2.でも平均は0となりません。 > 方法3.で、-180の角度を基準とすると、平均0が得られ、満足。 左上を除く全方向ですから、平均は右下が妥当かと思えば、これも右方向だと いいます。そこら辺の判断基準を説明してもらわないことには、答えは 出ません。

01461A
質問者

お礼

ありがとうございます。

すると、全ての回答が全文表示されます。
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.3

> それらの線分の角度 > (無論角度の基準は何等かの方法で得ねばなりませんが) > の平均等のスペックを得たいのです。 何に使うのですか?

01461A
質問者

お礼

お返事有り難うございました。 2次元平面上の絵などを、自動的に一定の方向へ向けるために回転させたいのです。

すると、全ての回答が全文表示されます。
  • terra5
  • ベストアンサー率34% (574/1662)
回答No.2

素人です。 位置ベクトルにして、単位ベクトルに変換。 (方向ベクトルを求めると言うのかな?) 全てのベクトルを合成して、そのベクトルの角を出す。 だいたい平均的な角度になると思いますが。

01461A
質問者

お礼

お返事有り難うございます。 #1へのお礼への補足として、一例を挙げたいと思います。 方法1. 与えられた角度を例えば弧度法で-180 ~ 180で表現し、それらの平均を求め、各角度から今求めた平均を減じる。 方法2. 与えられた角度を例えば弧度法で0~360で表現し、以下方法1と同様。 方法3. 何等かの方法で与えられた方向の一つを基準とし、後は方法2と同様。 例1. 弧度法で20, 40, 60, 120, 140, 160の角度があるとします。 方法1.で平均0が得られ、満足。 例2. 弧度法で-170, -160, -150, 150, 160, 170の角度があるとします。 方法1.では平均が180となり、不満足。 方法2.では平均が0となり、満足。 例3. 弧度法で-180, -135, -90, -45, 0, 45, 90の角度があるとします。 方法2.でも平均は0となりません。 方法3.で、-180の角度を基準とすると、平均0が得られ、満足。 しかし、与えられる角度が極めて多い場合、いかにも不細工な方法で、非現実的。また如何なる例でもうまくいくかどうか不明。

01461A
質問者

補足

お返事有り難うございます。 #1へのお礼への補足として、一例を挙げたいと思います。 方法1. 与えられた角度を例えば弧度法で-180 ~ 180で表現し、それらの平均を求め、各角度から今求めた平均を減じる。 方法2. 与えられた角度を例えば弧度法で0~360で表現し、以下方法1と同様。 方法3. 何等かの方法で与えられた方向の一つを基準とし、後は方法2と同様。 例1. 弧度法で20, 40, 60, 120, 140, 160の角度があるとします。 方法1.で平均0が得られ、満足。 例2. 弧度法で-170, -160, -150, 150, 160, 170の角度があるとします。 方法1.では平均が180となり、不満足。 方法2.では平均が0となり、満足。 例3. 弧度法で-180, -135, -90, -45, 0, 45, 90の角度があるとします。 方法2.でも平均は0となりません。 方法3.で、-180の角度を基準とすると、平均0が得られ、満足。 しかし、与えられる角度が極めて多い場合、いかにも不細工な方法で、非現実的。また如何なる例でもうまくいくかどうか不明。

すると、全ての回答が全文表示されます。
  • sanori
  • ベストアンサー率48% (5664/11798)
回答No.1

専門家ではないですが、アドバイスします。 点の座標(x,y)を(r,θ)座標系に変換すればよいでしょう。θは±πあるいは0~2πの範囲と規定します。 さらには(x,y)を複素数x+iyに置き換えると便利な場合があります。

01461A
質問者

お礼

早々のご教示有り難うございます。 ご指摘にあります0(rad.)と2π(rad.)が同じ値でないこと、つまり循環分布であることが、困難の一因であると考えております。 確かに極座標というより複素平面を考える方法もあるかもしれません。 しかし仮にそれで解決できるとしましても、そもそも角度1次元で表現できることを2次元で表現する冗長さに… 例えば定義域を-π~πとし平均がπ/3と得られたとしましょう。 そこでその角度を0として各角度を置換し、改めて上と同様の作業をしても、次にも止まる平均も一般には0となりません。 この作業を無限に繰り返すだけで… 例えば何か固定された絵をスキャニングするとしましょう。 どの方向が上かは、人間なら分かるかもしれませんが、 機械には難しいことです。 そこで「角度の平均を求め」ると、如何なる絵をもってきても、どの方向を基準(例えば右方向等々)にすれば良いか判断できると思います。 その基準の方向を得たい、これが私が今抱えている問題であります。 これに懲りず、今後ともご教示の程何卒宜しくお願い申し上げます。

すると、全ての回答が全文表示されます。

関連するQ&A