プロが教える店舗&オフィスのセキュリティ対策術

任意の四角形(台形を崩したようなもの)の中に分布するxy座標データを、長方形の中に分布するように座標変換したいのですが、いい方法をご存じのかたいらっしゃいましたら教えてください。

長方形の中に分布するはずのデータが、様々な要因で誤差を含みずれてしまいます。これを補正したいということです。

よろしくお願いします

A 回答 (6件)

#5 は、図形の変換にこだわり過ぎた暴論でした。



実戦的なのは、四辺形に座標を設定してしまう方法かも知れません。

四辺形の頂点を P0=(X0,X0),P1=(X1,Y1),P2=(X2,Y2),P3=(X3,Y3) として、P0 を原点、P1 を横軸、P2 を縦軸、と想定。
線分 P0-P1 上の点を {s*X0+(1-s)X1, s*Y0+(1-s)Y1} と凸表現(0≦s≦1)して、s座標を定義する。
線分 P2-P3 上でもs座標を定義する。< {s*X2+(1-s)X3, s*Y2+(1-s)Y3} >
線分 P0-P1 上と線分 P2-P3 上とで同じsの点同士は、s座標が同一とみなす。

同様にして、線分 P0-P2 上と線分 P1-P3 上でt座標を定義し、両線分上同じtの点同士は、t座標が同一とみなす。
たとえば、 {t*X0+(1-t)X2, t*Y0+(1-t)Y2} (0≦t≦1) 。

基本的な考えはこれだけです。
これを四辺形内部へ拡張できるのか否か、未検討です。吟味してみてください。
(うまくいけば、結果は辺長が1の正方形なので、所望のスケーリングをします)
    • good
    • 0
この回答へのお礼

多くの回答ありがとうございます。
#5は少々難解で、理解に手間取っていました。

本回答はかなり的を射ていると思います。
検証してみます

ありがとうございました。

お礼日時:2007/03/28 13:29

#4 です。



>一般には「等角写像」で取り扱う問題のようです。

これは軽はずみでした。明らかに変換前後は「等角」じゃありませんね。
座標ずれの比率が低ければ、つぎの手で近似できそうです。(等角性は保持できませんけど.... )
-----------------------------------------------
(0) まず、回転 & 平行移動して四辺形の底辺をX軸上にのせ、一端を原点に合わせておく。
 以下では、X-Y座標を複素平面とみなす。i.e. Z=X+iY=R(θ)*EXP[i*a(θ)]
 四頂点の(R,θ) : P0=(0,0),P1=(R1,θ1=0),P2=(R2,θ2),P3=(R3,θ3)

(1) θ変換 : Lagrange 多項式 L2(θ) を作り、a(θ)=θ+ L2(θ) とする。
 L2(θ1)=0, L2(θ2)=(π/2)-θ2, L2(θ3)=atan(R2/R1)
 この変換で、P2は虚軸上へ、P3は長方形の対角線上へと移る。

(2) R変換 : Lagrange 多項式 R(θ) を作り、R(θ)=R+G2(θ)とする。
 G2(θ1)=0, G2(θ2)=0, G2(θ3)=sqrt(R1^2+R2^2)-R(θ3)
 < G2(θ)=θ(θ-θ2)/{θ3(θ3-θ2)}*{sqrt(R1^2+R2^2)-R(θ3)} >
 この変換で、P3は長方形頂点の位置に移る。

怪しげなので座標変換式は省略します。くどいようですが、出来上がりは近似的な長方形です。
    • good
    • 0

座標ひずみを表現する簡単な数式があれば、それを逆にたどれるのでしょうが。



一般には「等角写像」で取り扱う問題のようです。
内容豊富だがかなり古い「等角写像事典」があります。
図書館などで見れるかも。
-----------------------------------------------------------
 Kober, H. Dictionary of Conformal Representations. New York: Dover, 1957.
 http://mathworld.wolfram.com/ConformalMapping.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
だいぶ近づいた感はありますが・・・

難しいんだなということがわかってきました。

お礼日時:2007/03/27 12:37

四角形PQRSを,定長方形ABCDに変換したいということですね。


一次式による変換(アフィン変換)
x'=ax+cy+e
y'=bx+dy+f
では,平行四辺形が平行四辺形に移りますから,無理です。

ただ単に,P→A,Q→B,R→C,S→D にするだけなら,いろいろできますが,
中にある点がめちゃくちゃに移ってはいけないでしょう。
最低,これこれの条件を満たしてほしい,ということがあるのではないでしょうか。
    • good
    • 0
この回答へのお礼

私の述べたいことを完璧に代弁していただきありがとうございます。

そのとおりです!

お礼日時:2007/03/27 11:27

全くの専門外で,あて外れかもしれませんが・・・



任意の凸四角形ABCDについて,その対角線ACとBDの交点をOとし,
点Oから,半直線OA,OB,OC,OD上の等距離にある4点を適宜とって,それらを順に,A’,B’,C’,D’とします.

すると,OA’= OB’= OC’= OD’ となっているから,
四角形A’B’C’D’は長方形になっています.

後は,個々の三角形について,適当な座標変換をすれば,
つまり,三角形OAB → 三角形OA’B’
     三角形OBC → 三角形OB’C’
     三角形OCD → 三角形OC’D’
     三角形ODA → 三角形OD’A’
の座標変換は(ベクトルなどの考え方で)たやすく見つかるでしょうから,
それらのトータルして,四角形ABCD → 長方形A’B’C’D’
の変換が決められると思うのですが,どうでしょう?

これではダメかな?

この回答への補足

回答ありがとうございます。
私の説明不足で申し訳ありません。

変換後の四角形は、変換前の図形から求めるものではなく、すでに決まった固定座標になります。

それと対角線の交点を中心とすると、それぞれの3角形での変換比率が異なってしまいちょっと都合が悪くなります。

補足日時:2007/03/27 09:52
    • good
    • 0

アフィン変換ですかね?



違ってたらすいません。

参考URL:http://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%95% …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

そうなのかもしれませんが、参考URLを解読するのに
時間がかかりそうです。

お礼日時:2007/03/27 10:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!