【実施例1】
【0016】
A.システム構成:
図1は、3次元地図画像データ生成システムの構成を示す説明図である。
3次元地図画像データ生成システム100は、CPU、RAM、ROMを備えるコンピュータに、図示する種々の機能を実現するコンピュータソフトウェアをインストールすることによって構成され、3次元地図(3D地図と言うこともある)を描画するための3次元地図画像データを生成するシステムである。本実施例では、スタンドアロンで稼働するコンピュータによってシステムを構成する例を示したが、複数のコンピュータ、サーバ等をネットワークで接続して構成してもよい。
3次元地図画像データとは、建物等の3次元形状を表した3次元モデルを投影して得られる2次元画像としての画像データである。
3次元地図画像データ生成システム100で生成された3次元地図画像データを用いることによって、スマートフォン300その他のディスプレイに3D地図を表示させることができる。また、3次元地図画像データをプリンタ200に出力することによって、3次元地
図201を印刷することもできる。3次元地図画像データは、投影された2次元画像としてのデータであるため、これらの地図表示および印刷出力において、改めて投影処理を施す必要はない。
【0017】
3次元地図画像データ生成システム100を構成する各機能ブロックの内容について説明する。
図1に示した各機能ブロックは、上述の通り、主としてソフトウェア的に構成されているが、その一部または全部をハードウェア的に構成しても構わない。
3D地図データベース101は、3次元地図画像データを作成する際に利用されるデータベースであり、建物を含む地物の3次元形状を表すポリゴンデータからなる3D地図データを記憶している。
投影処理部111は、3D地図データベース101の3D地図データを読み込み、投影処理を行って投影画像、即ち建物等を3次元的に表現した2次元画像を生成する。本実施例では、投影処理は平行投影によって行うものとし、2次元画像は、ラスタデータとなっている。透視投影による投影処理を行うものとしてもよい。
投影条件指定部110は、投影処理を行う際の条件を指定する。本実施例では、「通常」投影の条件と、「処理用」投影の条件とが用意されている。「通常」投影とは、3D地図データをそのまま用いて投影するための条件である。「通常」投影によって得られた画像は、通常投影画像102として記憶されている。「処理用」投影とは、通常投影画像102において建物の屋上面を特定するための投影処理を行うための条件である。「処理用」投影の結果を用いて特定された屋上面の画像は、屋上面画像103として記憶される。
屋上テクスチャ生成部113は、通常投影画像102、屋上面画像103を用いた画像処理によって、屋上面の凹凸感を表したテクスチャ画像を生成する。こうして生成されたテクスチャ画像は、屋上テクスチャ105として記憶される。
境界線生成部112は、屋上面画像103に基づいて、屋上テクスチャ105の境界線に相当する枠状の画像を生成する。この枠状の画像は、境界線画像104として記憶される。
画像合成部114は、通常投影画像102に、屋上テクスチャ105および境界線画像104を合成することによって、通常投影画像102における各建物の屋上面に凹凸感を付した画像を生成する。こうして生成された画像データが、3D地図画像106となる。
以下、3D地図画像106を生成するための処理内容について具体的に説明する。
【0018】
B.3D地図画像データ生成処理:
図2〜4は、3D地図画像データ生成処理のフローチャートである。
図1に示した各機能ブロックが連動して実行する処理に相当し、ハードウェア的には、3D地図画像データ生成システム100のCPUが実行する処理である。
処理を開始すると、3D地図画像データ生成システム100(以下、単に「システム100」というときもある)は、オペレータからの描画範囲、視線方向、投影方法の指定を受け付ける(ステップS10)。投影方法に応じた他の条件も入力するようにしてもよい。例えば、平行投影の場合は、さらに視線方向として、方位および見下ろし角度を入力することが考えられる。透視投影の場合は、さらに視点位置を入力することが考えられる。
次に、システム100は、指定された描画範囲に応じた3D地図データを読み込む(ステップS12)。そして、ステップS10で指定された条件に基づいて3D地図データを投影することによって、通常投影画像を生成する(ステップS14)。
【0019】
次に、システム100は、3D地図データを投影することで、処理用投影画像を生成する(ステップS16)。このための投影条件は、図中に示す通り、建物のテクスチャを非表示とすること、建物の色を統一すること、および真上から真下に向けてライティングを設定することの3つの条件である。本実施例では、全建物の色を共通としたが、用いる色は、建物ごとに異ならせてもよい。
これらの条件は、投影条件指定部110に予め設定されている。投影のための条件、即ち、視線方向、投影方法などの条件は、通常投影画像生成(ステップS14)と同じである。
こうすることによって、模様等が無い状態の単色の建物の投影画像が得られる。得られた処理用投影画像は、ライティングは真上から真下に設定されているため、建物の屋上面が最も明度が高い状態の画像となる。
【0020】
システム100は、得られた画像に基づいて屋上面画像を生成する(ステップS18)。即ち、処理用投影画像は、上述の通り、屋上面の明度が高い画像となっているため、明度差に基づいて、屋上面に相当する部分のみを抽出するのである。
図中に処理の様子を示した。左側が、処理用投影画像の例である。屋上面S1、S2を有する2つの建物が描画されている。建物は全ての面の色が統一されているが(ステップS16参照)、ライティングの効果によって、屋上面S1、S2は明度が高く、側面(図中のハッチングを付した部分)は、暗い面となっている。
この中から、明るい部分S1、S2のみを抽出すると、図の右側に示す状態となる。このように屋上面に相当する部分のみが抽出された画像を、屋上面画像と呼ぶ。
【0021】
次に、システム100は、屋上面画像に基づいて境界線を生成する(ステップS20)。境界線とは、後述する通り、屋上面のテクスチャの外周に相当する線である。本実施例では、屋上面画像を収縮処理して境界を抽出するものとした。
図中に処理例を示した。左端が屋上面画像である。先に
図2のステップS18に示したS1、S2の一方のみを表した。
この屋上面画像に対して収縮処理を施す。収縮処理とは、周知の画像処理技術であり、屋上面画像のように一定の領域の外周部分の所定範囲に存在するピクセルを削除する処理である。どの程度の収縮を施すかは、任意に設定可能である。
システム100は、収縮処理が施された屋上面画像に基づき、その境界を抽出する。こうして得られた枠状の画像が、ステップS20で生成される境界線画像である。
【0022】
なお、境界線画像の生成は、上述の方法に限らず、種々の方法で行うことができる。例えば、屋上面画像に基づいて境界線を抽出し、これをベクトル化して一つの閉図形として認識した後、縦横一定比率で縮小する処理を施す方法によってもよい。
【0023】
システム100は、次に屋上面カット画像を生成する(ステップS22)。図中に、この処理の内容を示した。
まず、左上にあるように、屋上面画像を読み込み、これに収縮処理を施す。この収縮処理は、境界線生成(ステップS20)で行ったのと同一の処理である。収縮処理によって得られた画像を、ここではカット枠と呼ぶ。
次に、左下にあるように、通常投影画像を読み込む。そして、これにカット枠を適用し、カット枠と重複する部分のみを屋上面カット画像として抽出する。こうすることによって、右下に示すように、通常投影画像の屋上面のうち、外周の一定幅を除いた部分が屋上面カット画像として抽出されることになる。屋上面カット画像は、通常投影画像を切り出したものであるから、屋上面画像やカット枠のように単色で表されたものではなく、各建物のマテリアルを反映した画像となっている。
【0024】
システム100は、生成された屋上面カット画像に対して、陰影を付し、屋上テクスチャを生成する(ステップS24)。
図中に処理例を示した。左側に示したのがステップS22で生成される屋上面カット画像である。
システム100は、この屋上面カット画像の2辺に陰影を付している。図中の例では、上側および右側の辺に陰影を付した例を示した。陰影の幅d1、d2は、任意に設定可能である。陰影を付す辺も任意に設定可能であるが、通常投影画像のライティングを踏まえて決定することが好ましい。例えば、通常投影画像において図中の右上側から左下方向にライティングの方向が設定されている場合には、このライティング方向に近い2辺、即ち図中の2辺に陰影を施すことになる。逆に、図中に左下から右上方向にライティングが設定されている場合には、左辺および下辺に陰影を付せばよい。
【0025】
上述の境界線生成処理(ステップS20)と、屋上面カット画像生成(ステップS22)および屋上テクスチャの生成(ステップS24)とは、順序を入れ替えてもよいし、両者を並行して行っても良い。
【0026】
システム100は、上述の各処理で得られた結果に基づき、通常投影画像、境界線、屋上テクスチャを合成する(ステップS26)。
図中に処理例を示した。上段の左側に示したのが通常投影画像で得られる建物の画像である。この状態では、屋上はただの平坦な面として描かれている。中央にはステップS20で生成された境界線、右側にはステップS24で生成された屋上テクスチャを示した。
下段には、これらを合成した状態を示した。屋上面には、屋上テクスチャにより陰影が施され、屋上テクスチャの外周に境界線が描かれる(図中では、敢えて境界線を強調して示した)。こうすることにより、屋上の周囲に一定幅の壁が形成されている状態を表すことができる。この壁の幅は、ステップS20、S22における収縮処理の程度によって決まり、壁の高さは、ステップS24における陰影の幅d1、d2によって決まる。
【0027】
システム100は、合成によって得られた画像を、3D地図画像として出力する(ステップS28)。この3D地図画像は、先に説明した通り、スマートフォン300その他のディスプレイに3D地図を表示させたり、プリンタ200によって印刷出力することができる。
【0028】
C.処理例:
図5〜7は、3D地図画像データの生成処理例である。
図5(a)は、オペレータから指定された描画範囲の通常投影画像(
図2のステップS14参照)である。平行投影した例を示した。この状態では、いずれの建物も屋上が平坦な面で描画されている。以下、右下の建物BLDに着目しながら処理例を説明する。この建物BLDも屋上面SRは平坦である。また、建物BLDは、単純な直方体ではなく、領域aに示すように、凹部が存在する点が特徴である。
【0029】
図5(b)は、処理用投影画像(
図2のステップS16参照)の例である。建物全体の色を統一し、真上からのライティングで投影した結果を示している。このように真上からのライティングを施すことにより、屋上は側面よりも明度が高い状態で描画される。建物BLDについても、屋上面PRの明度が高くなっている。また、凹部bがはっきりと判別できる状態となっている。
【0030】
図6(a)は、屋上面画像(
図2のステップS18参照)の例である。
図5(b)の処理用画像から、明度の高い部分のみを抽出した結果を示している。建物BLDの屋上面PRは、凹部cが存在する状態で、抽出されていることが分かる。
【0031】
図6(b)は、境界線(
図3のステップS20参照)の例である。
図6(a)の屋上面画像を収縮処理した上で、その外周を境界として抽出した結果である。建物BLDの屋上面PRからは、凹部dが存在する境界線LRが抽出されている。
【0032】
図7(a)は、屋上面テクスチャ(
図4のステップS24参照)の例である。屋上面画像(
図6(a))に基づいて生成される屋上面カット画像によって、通常投影画像(
図5(a))の屋上部分を切り抜いた上で、上辺および右辺に陰影を施した画像である。建物BLDの屋上テクスチャTRも図示する通り生成されている。
【0033】
図7(b)は、3D地図画像である。右下の建物BLDについて示すように、通常投影画像SR(
図5(a))に、境界線LR(
図6(b))、および屋上テクスチャTR(
図7(a))を合成することで生成される画像である。
3D地図画像では、各建物の屋上面には、外周に沿って所定幅の壁が形成されているように凹凸感が表現されており、平坦な面で示されている通常投影画像(
図5(a))よりもリアリティが向上している。
【0034】
以上で説明した本実施例の3D地図画像データ生成システムによれば、建物の屋上に凹凸感を持たせることによって、3次元地図のリアリティを向上させることができる。この凹凸感は、
図2〜4で示した処理によって自動的に付すことができるものであるため、オペレータに多大な負荷をかけることもない。
本実施例で付される凹凸感は、必ずしも建物の屋上の現実の状態を再現するものとはならないが、
図7(b)に示す通り、現実を忠実に再現したものでなくても、3次元地図のリアリティを向上させることができ、地図としての有用性を高めることができる。
【0035】
本実施例で示した凹凸感を付すための画像処理は、一例に過ぎず、以下に示すように種々の変形例を構成することもできる。
例えば、本実施例で示した処理に加えてオペレータによる前処理または後処理を施し、よりリアリティを向上させてもよい。
また、本実施例は、屋上の外周に沿った壁状の凹凸感を付す処理例を示したが、屋上面の雨水を配水するための排水溝、水道用のタンクなど種々の設備体を表す凹凸感を付す処理を施しても良い。
さらに、屋上に凹凸感を与える処理を複数種類用意しておき、屋上の面積や形状に応じて、使い分けるものとしてもよい。
なお、本実施例では、平行投影の処理例を示したが、透視投影に適用することも可能である。