0

私は米国の地図を持っています、そして私はその地図上に興味のある場所に対応するたくさんのピクセル座標を持っています。これらは、さまざまな設定と統計に従って、実行時にマップ上に動的に描画されます。

サイズの異なる米国の別の地図に切り替える必要があります。地図の左上隅は海のわずかな場所にあります。

そこで、互いに対応する各マップの座標の小さなセットを手動で収集しました。たとえば、最初のマップのポイント(244,312)は2番目のマップのポイント(598,624)に対応し、最初のマップの(1323,374)は2番目のマップの(2793,545)に対応します。

そのため、X次元とY次元の変換を決定しようとしています。古いマップと新しいマップの一連のポイントが与えられた場合、古いマップから新しいマップに任意のポイントを自動的に変換する方程式を見つけるx' = A*x + Cにはどうすればよいですか?y' = B*x + D

4

2 に答える 2

3

両方のマップに、(x 1、y 1)、(x ' 1、y' 1)、(x 2、y 2)、および(x ' 2、y' 2)の2点の座標があります。

A =(x ' 1 -x' 2)/(x 1 -x 2)
B =(y ' 1 -y' 2)/(y 1 -y 2)
C = x ' 1 -A x 1 
D = y'1 - B y 1

PSあなたの方程式は、あるマップから別のマップへの単純なスケーリング/変換を意味します。地球ごとに異なる投影法を使用することを心配している場合、方程式はより複雑になります。

于 2009-12-07T20:53:16.497 に答える
3

不正確さに対してより堅牢な結果を得るには、2つのポイントが役立つ場合があります。この場合、シフトとスケーリングのみを想定している場合、最小二乗法が役立つ可能性があります:Wikipedia

基本的に、最適なA、B、C、Dを選択することにより、sum((A xi + B-xi')^ 2 +(C yi + D-yi')^ 2)を最小化します。

于 2009-12-07T21:03:49.887 に答える