2005年9月4日,2012年9月28日改
全天写真の連続自動解析ソフト
「空と森」 Sora to mori
小池文人 (koikef@ynu.ac.jp)
<はじめに>
屋久島で調査中に台風のため宿での停滞を余儀なくされ,デジタルカメラで撮影した全天写真を連続的に読み込み相対光強度をもとめるソフトを作ってみた.葉群と空を見分ける2値化も自動で行う.
フィルムに撮影してスキャナで読み込む場合は写真の位置あわせが重要だが,デジタルカメラでは画像ファイル上の同じ位置に撮影されているので位置あわせは重要でないため簡略化した.かつてMS-DOSのビデオ入力システム用に同様のソフトを作ったが,当時は相対光強度10%程度以上でなければ自動で2値化の閾値を決められなかった.しかし2000×1500画素であれば十分なデータが得られるため相対光強度1%以下の照葉樹林の林床でも閾値を自動的に決められるようになり連続自動処理が実用的になった.
天球の輝度分布はCIEのStandard overcast skyを仮定している(天頂角zの輝度 = 1+4*exp(-0.7/cos(z)),天頂の輝度を地平の約3倍と仮定したもの).この相対光強度は一般的に散乱光の強度を与えると言われているが,長期間の積算を考慮すると直達光も天球上では,地平での輝度が小さな広い光の帯となるため,南北などの方位が考慮されないことをのぞいては,それほど違わないように思える.また植物は意外に光環境に鈍感なので相対光強度10%と3%では違いが現れるが,10%と8%くらいだとふつうは差がでない.
<インストール>
Windows XPで使うことを想定している.「soratomori.exe」 のファイルを作業するフォルダーにコピーする.レジストリの登録は行っていないし,特別なランタイム・ファイルもWindows XPなら必要ない.Windows 95などではVisual Basic 6.0のランタイムファイルをインストールする必要がある.
<写真の撮影>
画角180度の魚眼レンズをつけたデジタルカメラを使う.撮影された画像は円形になる.暗い林では画素数が多いほどよい.露出は林冠に覆われない空が少し明るく林冠がシルエットになるくらいに設定し,シャッタースピードや絞りは固定してマニュアル・モードで撮影する.空が開けた場所でオート・モードにて空(太陽を含まない)の露出を調べるとよい.なおこのとき隅々まで写った写真も1枚写しておくと画像の中心位置などを調べるときに便利.オートのままでの撮影は林冠が1層の場合にはよいが,屋久島以南の照葉樹林や熱帯多雨林のように樹冠が何層も重なっている場合は,最上層の葉群が消滅してしまう.
なるべく画像処理されないプレーンな画像ファイルを得られるようにする.画像のエッジ強調をOFFにして,ファイルのタイプはjpegのような情報を失うタイプの圧縮方式はなるべく避ける.ただし高解像度で圧縮率がそれほど高くなければjpegでも問題ないようだ.
|
|
<使い方>
1.
画像ファイルは24bitのBMPファイル(赤・緑・青の各8bit)に変換しておく.tiffやjpegなどからBMPへ多数の画像のフォーマットを一括変換するソフトは
http://www.vector.co.jp/soft/win95/art/se200307.html など数多くある.
画像フォーマットはPhotoshopなどの画像処理ソフトで読み込んで[イメージ]メニューの[モード]や[画像解像度]で確認できる.
2.
画像ファイルのリストをテキスト・ファイルにする.デフォルトはPhotoFile.csv.1行にファイル名(パスを入れてもよいと思う)と白黒の閾値決定方法(明るい白の部分が空,黒が葉群や枝幹)をコンマ区切りで記述する.閾値決定方法をAとすれば閾値は自動的に判断される.数値(1-254)を指定すると指定した閾値が使われる.ちなみにもっとも明るいところの輝度が255である. Excelの連番でファイル名を作ると楽だが,ファイル名が間違っていたり,消去して存在しないファイル名が入っているとその時点でプログラムが終了する.ただし結果のファイルをみればどこで止まったかがわかる.例は以下の通り.
DSCN2062.bmp, A
DSCN2063.bmp, 131
DSCN2064.bmp, A
DSCN2065.bmp, A
Excelで作ったファイルは「メモ帳」などのエディタにドラッグ&ドロップして内容を確認して,むだなコンマや引用符などがないか確認しておく.
3.
180度全体が明るく写った写真を使って,
・天頂(画像円の中心)の座標
・画像円の半径
を画素数で計る.画像の左下角を原点(0,0)にする.中心座標は円の上下左右の端から計算するとよい.各種の画像処理ソフトでもできるが「みんなでGIS」の[画像ファイル入力]でもできる(http://www13.ocn.ne.jp/~minnagis/).
4. 「空と森.exe」 をダブルクリックしてプログラムを起動し,各種のパラメータを設定して[開始]をクリック.実行中に2値化された画像が表示されるが,緑で示されているのは光環境の計算に使用した点である.[2値化画像を保存]をチェックしておくと,この画像が「ファイル名-BW.bmp」の名称で保存される.原画像とサイズが違うが,実際の計算は原画像で行われている.
5.
結果は指定したファイル(デフォルトのファイル名はPhotoLog.csv)にコンマ区切りのテキストで保存される.1行にファイル名,白黒閾値,相対光強度(%)が記述されている.自動閾値設定を指定して閾値探索に失敗した場合はその旨が記載されている.例は以下の通り.
ファイル名, 白黒閾値,
相対光強度(%)
DSCN2062.bmp, 130 , 83.9544643142715
DSCN2063.bmp, 131 , 81.8064262583614
DSCN2064.bmp, 109 , 9.59756694498584
DSCN2065.bmp, 113 , 9.88198739455157
6. 自動閾値設定では天球の状態が同じであっても,明るい林では閾値が高くなり暗い林では低くなるが,これは望ましいことである. 画像のボケは避けられないため,明るい空に葉がまばらに散っているとき,周辺の空からの光により葉の部分の輝度は細い葉で高く,幅の広い葉で低くなる.逆に暗い林冠下でごく小さな空が見えているとき,空の部分の輝度は林外で写した写真での空よりもかなり暗くなっている.このため,明るい林では閾値を高く,暗い林では低く設定する必要がある.
7. 原理的に空が全くない場所や全く空ばかりの写真からは閾値の自動判定はできない.保存されている2値化画像で確認しておく.
<主なカメラとレンズの組み合わせでのパラメーター>
カメラとレンズ |
設定解像度 (単位は画素数) 幅×高さ |
天頂の座標 (単位は画素数) (幅方向,縦方向) |
視野の半径 (単位は画素数) |
投影方式 |
ニコンクールピックス995, ニコンFC-E8 |
2048×1536 |
(1050,750) |
750 |
等距離射影 |
キャノンEOS Kiss χ2, シグマ8mmF3.5 EX DG CIRCULAR FISHEYE |
4272×2848 |
(2114, 1425) |
1229 |
等立体角射影 |
ソニーαNEX-C3, 安原製作所「まどか」 |
2448×1624 (画像サイズS,縦横比3:2,画質ファインjpeg保存) |
(1224,811) |
792 |
正射影 |
<利用条件>
このプログラムは自己責任でお使いください.研究発表をされる場合はこのプログラムを使用した旨を記載しておいてください.
<変更履歴>
2012年9月28日 正射影に対応
2009年1月21日 画像ファイル名を間違えたときのエラーメッセージを改良
2005年9月16日 2値化の改良
2005年9月4日 作成