Wingneo 座標計算ワーク「アフィン2」の計算資料 (1) 特筆事項 係数の計算精度を向上するために基準座標(平均値)からの相対的な計算としています。 変換元基準点と変換先基準点の対を、1対1、1対複数、複数対1の指定が可能で、複数指定した 基準点は平均値を基準点座標として採用します。 式の名称にヘルマートやアフィンといった名称を使用し区別していますが、便宜上の表記です。 (2) 使用する変数記号など Pn :変換元基準点 n(X座標及びY座標を含めた表現) Pnx :変換元基準点 n のX座標(Qn が 1 に対して複数指定の場合平均値) Pny :変換元基準点 n のY座標(Qn が 1 に対して複数指定の場合平均値) PA :Pn の平均値(X座標及びY座標を含めた表現) PAx :Pnx の平均値 PAy :Pny の平均値 Qn :変換先基準点 n(X座標及びY座標を含めた表現) Qnx :変換先基準点 n のX座標(Pn が 1 に対して複数指定の場合平均値) Qny :変換先基準点 n のY座標(Pn が 1 に対して複数指定の場合平均値) QA :Qn の平均値(X座標及びY座標を含めた表現) QAx :Qnx の平均値 QAy :Qny の平均値 pm :変換元対象点 m(X座標及びY座標を含めた表現) pmx :変換元対象点 m のX座標(係数を使用して計算する場合の与点座標) pmy :変換元対象点 m のY座標(係数を使用して計算する場合の与点座標) qm :変換先対象点 m(X座標及びY座標を含めた表現) qmx :変換先対象点 m のX座標(係数を使用して計算する場合の求点座標) qmy :変換先対象点 m のY座標(係数を使用して計算する場合の求点座標) (3) 変換基準点の扱い Pn 及び Qn に対して、1 点ずつ既知点を指定する方法を標準とする。 Pn 又は Qn に対して、どちらか一方に 1 点指定し、もう片方に 2 点以上の指定を認め、この場合 は各々の座標値の平均値を Pn 及び Qn と称する。 Pn 及び Qn を 1 対とし、係数計算時には 1 対に対して重量 1 を与える。 計算方式により必要な対数以上を使用し、係数を求める。 (4) 変換対象点の扱い 変換元対象点 pm は 1 点ずつ指定する。 pm に対して変換先対象点 qm を 1 点指定し、これを 1 対とする。 入力された対数分だけ係数に当てはめて変換先対象点を求める。 1 (5) 対応する計算方式名称及び方程式、表示される係数、変換計算式 「平行移動」 方程式 Qnx = (Pnx − PAx) + QAx Qny = (Pny − PAy) + QAy 表示される係数 「基準X1」 「基準Y1」 「基準X2」 「基準Y2」 変換計算式 X1 = PAx Y1 = PAy X2 = QAx Y2 = QAy qmx = (pmx − X1) + X2 qmy = (pmy − Y1) + Y2 「等倍ヘルマート変換」 方程式(ヘルマート) Qnx = KAh ∙ (Pnx − PAx) − KBh ∙ (Pny − PAy) + KCh + QAx Qny = KBh ∙ (Pnx − PAx) + KAh ∙ (Pny − PAy) + KDh + QAy 表示される係数 「基準X1」 「基準Y1」 「基準X2」 「基準Y2」 「回転角」 X1 = PAx Y1 = PAy X2 = KCh + QAx Y2 = KDh + QAy || α = tan || 象限を考慮した全方位角度(秒単位) 変換計算式 qmx = cos α ∙ (pmx − X1) − sin α ∙ (pmy − Y1) + X2 qmy = sin α ∙ (pmx − X1) + cos α ∙ (pmy − Y1) + Y2 2 「相似ヘルマート変換」 方程式(ヘルマート) Qnx = KAh ∙ (Pnx − PAx) − KBh ∙ (Pny − PAy) + KCh + QAx Qny = KBh ∙ (Pnx − PAx) + KAh ∙ (Pny − PAy) + KDh + QAy 表示される係数 「基準X1」 「基準Y1」 「基準X2」 「基準Y2」 「回転角」 「伸縮率」 変換計算式 X1 = PAx Y1 = PAy X2 = KCh + QAx Y2 = KDh + QAy || α = tan || 象限を考慮した全方位角度(秒単位) f = √KAh + KBh (倍率) qmx = f ∙ cos α ∙ (pmx − X1) − f ∙ sin α ∙ (pmy − Y1) + X2 qmy = f ∙ sin α ∙ (pmx − X1) + f ∙ cos α ∙ (pmy − Y1) + Y2 「アフィン変換」 方程式(アフィン) Qnx = KAa ∙ (Pnx − PAx) + KCa ∙ (Pny − PAy) + KEa + QAx Qny = KBa ∙ (Pnx − PAx) + KDa ∙ (Pny − PAy) + KFa + QAy 表示される係数 「基準X1」 「基準Y1」 「基準X2」 「基準Y2」 「X係数 1」 「X係数 2」 「Y係数 1」 「Y係数 2」 変換計算式 X1 = PAx Y1 = PAy X2 = KEa + QAx Y2 = KFa + QAy KX1 = KAa KX2 = KCa KY1 = KBa KY2 = KDa qmx = KX1 ∙ (pmx − X1) + KX2 ∙ (pmy − Y1) + X2 qmy = KY1 ∙ (pmx − X1) + KY2 ∙ (pmy − Y1) + Y2 3 (6) 係数の計算 以下の式では次のように置き換えて表現します。 xn = Pnx − PAx (変換元基準点 X 座標の平均値を 0 とした場合の変換元基準点の X 座標) yn = Pny − PAy (変換元基準点 Y 座標の平均値を 0 とした場合の変換元基準点の Y 座標) Xn = Qnx − QAx (変換先基準点 X 座標の平均値を 0 とした場合の変換先基準点の X 座標) Yn = Qny − QAy (変換先基準点 Y 座標の平均値を 0 とした場合の変換先基準点の Y 座標) cn = 変換元基準点、変換先基準点の対数 方程式(ヘルマート)の係数計算 方程式は Xn = KAh ∙ xn − KBh ∙ yn + KCh Yn = KBh ∙ xn + KAh ∙ yn + KDh と置き換えることができ、次式により行列と最小 2 乗法を用いて各係数を求める。 Vh = Ah ∙ Xh − Lh、Ph ただし、 Vh:残差のベクトル(2cn×1) Xh:未知数のベクトル(4×1) KAh KBh Xh = KCh KDh Ah:計画行列(2cn×4) xn −yn 1 0 Ah = yn xn 0 1 ⋮ ⋮ ⋮ ⋮ Lh:定数項のベクトル(2cn×1) Xn Lh = Yn ⋮ Ph:重量の行列(2cn×2cn) 1 0 ⋯ 0 0 1 ⋯ 0 Ph = 変換元基準点、変換先基準点の対に対する重みは全て 1 とする ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ※ 行列要素の配置順位は、それぞれ対応している。 正規方程式の行列 Nh ∙ Xh = Uh ただし、 Nh = Ah ∙ Ph ∙ Ah、U = Ah ∙ Ph ∙ Lh Ahは、Ah の転置行列 4 解 Xh = Nh ∙ Uh Nhは、Nhの逆行列 式の展開 0 (xn) (yn)⎤ ⎡ (xn + yn ) ⎢ ⎥ ⎢ 0 (xn + yn) − (yn) (xn)⎥ ⎥ Nh = ⎢ ⎢ (xn) − (yn) cn 0 ⎥ ⎢ ⎥ ⎢ ⎥ (yn) (xn) 0 cn ⎦ ⎣ ⎡ (xn ∙ Xn + yn ∙ Yn) ⎤ ⎢ ⎥ ⎢ (−yn ∙ Xn + xn ∙ Yn)⎥ ⎥ Uh = ⎢ ⎢ ⎥ (Xn) ⎢ ⎥ ⎢ ⎥ (Yn) ⎣ ⎦ 5 方程式(アフィン)の係数計算 方程式は Xn = KAa ∙ xn + KCa ∙ yn + KEa Yn = KBa ∙ xn + KDa ∙ yn + KFa と置き換えることができ、次式により行列と最小 2 乗法を用いて各係数を求める。 Va = Aa ∙ Xa − La、Pa ただし、 Va:残差のベクトル(2cn×1) Xa:未知数のベクトル(6×1) KAa ⎡KBa⎤ ⎢ ⎥ KCa ⎥ Xa = ⎢ ⎢KDa⎥ ⎢ KEa ⎥ ⎣ KFa ⎦ Aa:計画行列(2cn×6) xn 0 yn 0 1 0 Aa = 0 xn 0 yn 0 1 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ La:定数項のベクトル(2cn×1) Xn La = Yn ⋮ Pa:重量の行列(2cn×2cn) 1 0 ⋯ 0 0 1 ⋯ 0 Pa = 変換元基準点、変換先基準点の対に対する重みは全て 1 とする ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ※ 行列要素の配置順位は、それぞれ対応している。 正規方程式の行列 Na ∙ Xa = Ua ただし、 Na = Aa ∙ Pa ∙ Aa、Ua = Aa ∙ Pa ∙ La Aaは、Aaの転置行列 6 解 Xa = Na ∙ Ua Naは、Naの逆行列 式の展開 0 (xn ∙ yn) 0 (xn) 0 ⎤ ⎡ (xn ) ⎢ ⎥ 0 (xn) 0 (xn ∙ yn) 0 (xn)⎥ ⎢ ⎢ ⎥ ⎢ (xn ∙ yn) 0 (yn) 0 (yn) 0 ⎥ ⎥ Na = ⎢ ⎢ 0 (xn ∙ yn) 0 (yn ) 0 (yn)⎥ ⎢ ⎥ ⎢ (xn) 0 (yn) 0 cn 0 ⎥ ⎢ ⎥ ⎢ ⎥ 0 (xn) 0 (yn) 0 cn ⎦ ⎣ ⎡ (xn ∙ Xn)⎤ ⎢ ⎥ ⎢ (xn ∙ Yn) ⎥ ⎢ ⎥ ⎢ (yn ∙ Xn)⎥ ⎥ Ua = ⎢ ⎢ (yn ∙ Yn)⎥ ⎢ ⎥ ⎢ (Xn) ⎥ ⎢ ⎥ ⎢ ⎥ (Yn) ⎣ ⎦ 7
© Copyright 2024