Blenderを使用したNDVI画像の処理

この記事はBlender Advent Calendar向けに作成しました。本稿は元々Analyzing NDVI Imagery Using Blenderとして投稿していたものに加筆修正を加えたものです。

Blenderの本領である3D作成とは違った趣向ですが、レンダリングノードがどのくらい汎用性があるか、ということに関して示すことができましたら嬉しいです。

先ずはNDVIに関して軽く解説。NDVIはNormalized Difference Vegetation Indexの略で、正規化植生指標という植物の量や活力を表す値です。具体的には赤の可視光と近赤外線を測定することにより得る値となります。

国土環境モニタリングのページにその計算方法などが掲載されています。

どのようにして撮影するのか

一般的なカメラの素子は赤外線を捉えることができますが内部にそれを遮断するフィルタが入っており、そのまま撮影しても必要な光成分はほとんど撮影されません。Public Labはそれを分光するためのフィルタを販売しており、それを使用し、カメラを改造するか、改造済みのカメラを入手することができます。このカメラでは赤外線成分を赤チャンネル、可視光線を青チャンネルに記録します。

基本的原理は同じなので、衛星などの元データなどのデータも流用可能かとは思いますが、データ構成により調整を行う必要があるかもしれません。

Blenderを使用しての処理

ここで使用する画像はInfragramカメラに付属のサンプル画像を使用します。このカメラで撮影すると、以下のような画像が撮影できます。

撮影画像

NDVI画像を抽出するのにはノードでNDVI変換を定義しました。

NDVI変換ノード

このノードグループからは以下のような出力が得られます。この画像をColor Rampなどと合成することにより擬似色画像を構成することができます。

NDVI出力画像

以下はColor Rampを当てはめた例です。活性度に応じて白や緑に表示されています。

NDVI擬似色画像

Public Labでは撮影した画像を処理するサービスがありますが、Blenderで処理することにより同様の画像をローカルに処理することができます。

Infragram.org的 その1

Infragram的 その2

Blenderではノードを設定し、組み合わせることで、目的に応じた映像を出力することができます。

ノード設定

例えば以下は白黒の可視光線画像にNDVI画像を合成した画像です。

活性を示したオーバレイ画像

この画像では植物が活発と思われる部分がはっきりとハイライトされるため、存在する植物などを表示することができます。

以下、使用したBLENDファイルです。

infragram-2014082702.blend.zip

BlenderでNDVI処理する利点

  1. 柔軟性のある加工を施すことができる。
  2. Packすることにより、共同作業者などと単一のファイルをやりとりすることができる。
  3. NDVI動画画像も静止画と同じぐらい簡単に加工可能。(タイムラプス映像や気球映像などの加工も容易)ただし動画を使用した場合現状Packされないことにご留意下さい。
  4. 非破壊的に処理を加えることができるため、処理の切り替えができるほか、またどのようにして最終画像に至ったかということがファイルに含まれるため、いわば自己ドキュメンティングなファイルを配布することができる。

応用

同様のプロセスを使用して、その他の分野の加工でも、光成分に関する加工を行うことができます。カラーランプは色を一定の色のスケールに割り当てることができるため、例えば犬から見た景色、などもシミュレートしてみることが可能です。

犬が見る街

明日はnecoganeさんのテクスチャ作成方法(自己流)について、ということです。