月一回、にちょっと足りないペースでお届けしている写真測量夜話、今回と次回は「とある写真画像が地図上のどの範囲に対応するか」の示し方について綴っていきます。
…
さて、突然出すのは第1回の冒頭で使ったこの航空写真画像(left.jpg)です。とはいえ前回までとはてんで違う話題で、撮影がどうだのステレオがどうだのとはほとんど関係ありません。
本当はこれにオルソ補正と呼ばれる処理を行わないと地図と重なる画像にならないのですが補正したことにして、この画像とセットにして使う画像が地図上のどの範囲に対応するかをあらわす「ワールドファイル」と呼ばれるファイルについて解説していきます。
…
このワールドファイル、実は単純なテキスト形式のファイルで中身も6行しかありません。セットとなる画像が上の”left.jpg”であればワールドファイルのファイル名は”left.jpgw”や”left.jgw”にするという命名則に加え、各行には次のような値を格納します。
- 画像座標X方向の1ピクセルを地図座標XYに従って分解した場合の地図上でのX方向の長さ(主にメートル)
- 画像座標X方向の1ピクセルを地図座標XYに従って分解した場合の地図上でのY方向の長さ
- 画像座標Y方向の1ピクセルを地図座標XYに従って分解した場合の地図上でのX方向の長さ
- 画像座標Y方向の1ピクセルを地図座標XYに従って分解した場合の地図上でのY方向の長さ
- 左上ピクセルの中心位置の地図座標X
- 左上ピクセルの中心位置の地図座標Y
要は2次元のaffine変換なのですが文字で見てもわかりづらいですね…。英語ですがこちらの解説がわかりやすいです。上のleft.jpgはゴムみたいに伸ばせるものだとして感覚的な説明も加えておくと、
- left.jpgの左上をワールドファイルの5,6行目の座標に従って地図上にぺたっとくっつける。
- 右上をワールドファイルの1,2行目から読み取れる力で引っ張りながら、同じく1,2行目で指定された方向にむけて貼り付ける。
- 左下とワールドファイル3,4行目に従って同じように貼り付ける。
- 写真が歪まないように右下も貼り付ける。
といったところでしょうか。やっぱりわかりにくいな。
…
このワールドファイル、というか画像と座標の対応を考えるときに意識しておかなければならないのが、画像を構成する画素(ピクセル)は点のようでいて点でないことです。実際left.jpgの左上部分を拡大すると、
このように、当然のことながらひとつの画素はある領域を占める四角形として画面上に表示されてしまいます。そのため、「画像の左上」と「とある地図座標」を対応づけるとき、対応させたい画像の左上というのは「画像の左上画素の左上」なのか「画像の左上画素の中心」なのか、はたまた(まずありえませんが)「画像の左上画素の右上」なのかという点をはっきりさせておく必要があります。ワールドファイルの場合は「画像の左上画素の中心」(と、ワールドファイル5行目、6行目に記述される地図座標)です。
…
と、今日はここまでにして、後編ではワールドファイルだと不便なケース&別の手法での画像と座標の対応づけについて紹介していきます。