C、C++、Java などのコンピュータ言語を使用して、衛星画像を解析して、降雨エリア、水域などの湿潤景観、森林地帯、荒れ地などを見つけることはできますか? この中でどれが一番いいですか?複雑ですか?
高度な C、C++、Java バージョンを使用してこのプロジェクトを実行する他のオプションはありますか? これらの言語には、MATLAB、LABVIEW などのツールを使用せずにピクセル値を読み取る特別な機能はありますか?
代替テキスト http://xs.to/thumb-1F0D_4B62DE2C.jpg代替テキスト http://xs.to/thumb-0C7F_4B62DFCB.jpg
私の記憶が正しければ、書籍「Digital Image Processing 3rd Edition」に陸塊解析に関するセクションがあります。こちらからダウンロードできる「Digital Image Processing in C」もチェックしてください。
IIRCとこの NASA のページは を確認しているようで、私は物理学者ではありません。完全な (目に見えるだけでなく) 電磁スペクトルを含む衛星画像が必要になります。これにより、水、植物などを選択できます。
Landsat 7 の画像はカラー合成であり、3 原色を Enhanced Thematic Mapper (ETM+) センサーの 3 つのバンドに割り当てることによって作成されます。これらの画像はカラー写真ではなく、「偽色」画像です (緑色のフィールドが画像で緑色に見えるとは限りません)。
ランドサット バンドは次のことに役立ちます。
1 沿岸水域マッピング、土壌/植生識別、森林分類、人工地物識別
2 植生識別および健康モニタリング、人工地物識別
3 植物種識別、人工地物識別
4 土壌水分モニタリング、植生モニタリング、水域識別
5 植生水分含有量モニタリング
6 表面温度、植生ストレスモニタリング、土壌水分モニタリング、雲の区別、火山モニタリング
7 鉱物と岩石の識別、植生水分含有量
詳細については、次を参照してください: Lillesand, T. and Kiefer, R., 1994. Remote Sensing and Image Interpretation. John Wiley and Sons, Inc.、ニューヨーク、p. 468。
また、画像の 3D レリーフを作成し、スペクトル データを谷、河川地点、沿岸地域などと関連付けてみることもできます。要は画像解析で推計するデータがある
テクスチャ オペレータは、衛星画像の地理的領域を区別できます。これは、水域、草地、大都市圏などを識別するための古典的なテクスチャ演算子について説明している Robert Haralickの論文です。
私はオープン ソースのOrfeoツールボックスである程度の成功を収めました。これはITKに基づく C++ 画像処理ライブラリですが、衛星画像専用です。こちらのドキュメントで、テクスチャ オペレータの実装例をいくつか見ることができます。
私の経験では、言語はよりユーザーフレンドリーであり、リモートで感知されたデータを処理するためのPythonモジュールが増えているため、これにはpythonをお勧めします。さらに、pythonはオープンソースなのでMATLABなどを避けることができます。
RSGISLib ソフトウェアには Python バインディングがあり、リモート センシング データの処理に最適です。私は博士課程全体を通してそれを完全に使用しました。このソフトウェアはhttp://www.rsgislib.orgで見つけることができ、そのアプリケーションを紹介する素晴らしいブログはhttps://spectraldifferences.wordpress.comで見つけることができます。
私は地理学のバックグラウンドを持っていますが、Python を簡単に使用することができました。私の意見では、C++ や Java などはより複雑です。Python には、トリッキーな部分 (画像へのアクセス、投影のチェックなど) を行うモジュールが含まれていることが多いためです。
パニワニの答えは、テクスチャ分析を示唆している限り、良いスタートです。Imagemagick がテクスチャ分析に使用されることはあまりありませんが、そのための可能なツールであることは間違いありません。これをチェックしてください:
$ cat get_images.sh
#!/bin/bash
base_url='http://maps.googleapis.com/maps/api/staticmap?center='
other_params='&zoom=12&size=400x400&maptype=satellite&sensor=false'
curl -o desert1.png "$base_url"'41.660000,112.900000'"$other_params" 2>/dev/null
curl -o desert2.png "$base_url"'40.660000,112.900000'"$other_params" 2>/dev/null
curl -o rural1.png "$base_url"'40.714728,-74.400000'"$other_params" 2>/dev/null
curl -o rural2.png "$base_url"'41.714728,-74.400000'"$other_params" 2>/dev/null
curl -o suburban1.png "$base_url"'40.614728,-74.300000'"$other_params" 2>/dev/null
curl -o suburban2.png "$base_url"'40.714728,-74.200000'"$other_params" 2>/dev/null
curl -o urban1.png "$base_url"'40.744728,-73.831672'"$other_params" 2>/dev/null
curl -o urban2.png "$base_url"'40.754728,-73.930672'"$other_params" 2>/dev/null
echo -e "\nEntropy:"
for t in "desert1" "desert2" "rural1" "rural2" "suburban1" "suburban2" "urban1" "urban2"; do
echo -e " " $t "\t" `./entropy "$t".png | grep Aver | sed -e 's/.*= //'`
done
echo -e "\nStd Dev:"
for t in "desert1" "desert2" "rural1" "rural2" "suburban1" "suburban2" "urban1" "urban2"; do
echo -e " " $t "\t" `convert "$t".png -format '%[fx:standard_deviation]' info:`
done
echo -e "\nRatio of hi freq to low freq:"
for t in "desert1" "desert2" "rural1" "rural2" "suburban1" "suburban2" "urban1" "urban2"; do
convert "$t".png -fft +depth +adjoin "$t"_fft_%d.png
convert "$t"_fft_1.png -fill none -stroke black -strokewidth 100 -draw "rectangle 50,50,350,350" "$t"_fft_1b.png
convert "$t"_fft_1.png -fill none -stroke black -strokewidth 100 -draw "rectangle 150,150,250,250" "$t"_fft_1c.png
lo=`./entropy "$t"_fft_1b.png | grep Average | sed -e 's/.*= //'`
hi=`./entropy "$t"_fft_1c.png | grep Average | sed -e 's/.*= //'`
echo -e " " $t "\t" `echo "scale=8; $lo / $hi" | bc`
done
$ ./get_images.sh
Entropy:
desert1 0.557244
desert2 0.586651
rural1 0.652486
rural2 0.709812
suburban1 0.69883
suburban2 0.727527
urban1 0.746479
urban2 0.765279
Std Dev:
desert1 0.0756219
desert2 0.0881424
rural1 0.107279
rural2 0.140878
suburban1 0.125647
suburban2 0.143765
urban1 0.150628
urban2 0.185245
Ratio of hi freq to low freq:
desert1 .41319501
desert2 .41337079
rural1 .41333309
rural2 .41335422
suburban1 .41326120
suburban2 .41339882
urban1 .41327271
urban2 .41326168
これら 3 つの異なるメトリック (画像エントロピー、画像標準偏差、画像内の高周波数コンテンツと低周波数コンテンツの比率) はそれぞれ、砂漠から農村、郊外から都市へのスペクトルと適切に相関しています。これらを分類器 (ニューラル ネットワークなど) に入れれば、Google マップの衛星画像が砂漠、田園地帯、郊外、都市部のいずれであるかを適切に予測できると思います。