2010-01-29 115 views
11

是否可以通過使用計算機語言(如C,C++,Java)分析衛星圖像以查找降雨量,水體景觀,森林面積,荒地等溼度景觀?其中哪一個最好?它複雜嗎?衛星圖像的圖像處理

是否有任何其他選項使用高級C,C++,Java版本來執行此項目。這些語言具有讀取像素值的任何特殊功能。無需使用MATLAB,LABVIEW等工具。

+0

我可以回答你的問題的一部分:是的,它會變得複雜。 :)有興趣看看對解決方案/軟件等有什麼提示。 – 2010-01-29 12:59:30

回答

6

alt text http://xs.to/thumb-1F0D_4B62DE2C.jpgalt text http://xs.to/thumb-0C7F_4B62DFCB.jpg

有一個在著作「Digital Image Processing 3rd Edition」關於土地質量分析一節中,如果我沒有記錯。還可以查看「C中的數字圖像處理」,您可以下載here

IIRC和this NASA page seems to confirm,我不是物理學家,你需要具有完整(不僅僅是可見的)電磁頻譜的衛星圖像。這可以讓你挑選水,蔬菜等。

陸地衛星7圖像是彩色複合材料, 通過分配三原色 顏色增強 專題成像儀(ETM +)傳感器的三個頻帶製成。這些 圖像不是彩色照片,它們是 是「假色」圖像(在 圖像中,綠色區域 不一定看起來綠色)。

陸地衛星頻段將幫助:

1沿岸水域測繪,土壤/植被歧視,森林分類, 人爲特徵識別
2植被歧視和健康監測,人爲特徵識別
3植物種類鑑定,人爲特徵鑑定
4土壤水分監測,植被監測,水體辨別
5植被水分含量監測
6表面溫度,植被應力監測,土壤溼度監測, 雲分化,火山監測
7礦物和岩石歧視,植被水分含量

更多細節參見:利勒桑,T。和基弗,R., 1994年。遙感和圖像解釋。 John Wiley and Sons,Inc.,New York,p。 468.

您可能還想要創建圖像的3D浮雕,並嘗試將光譜數據與低谷,河流點,沿海地區等進行關聯。簡而言之,有數據通過圖像分析進行估計。

3

紋理運算符可以區分衛星圖像中的地理區域。下面是從羅伯特·哈爾利克一個paper描述經典的質感運營商識別水體,草地區,京津冀都市圈等

我已經有一些成功的開源Orfeo工具箱,這是一種基於C++的圖像處理庫ITK,但專門用於衛星圖像。您可以在文檔here中看到紋理運算符的一些實現示例。

Pre-texture Post-texture

0

paniwani的回答是一個良好的開端 - 只要他認爲紋理分析。 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 

這三個不同的指標(圖像熵,圖像標準偏差。在頻率到的圖像中的LO頻率含量的比率)分別體面用頻譜從沙漠至農村到相關-suburban到城市。如果你把它們放到分類器(例如神經網絡)中,我敢打賭你可以開發出一個像樣的預測器,以判斷谷歌地圖衛星圖像是沙漠,農村,郊區還是城市的土地。

0

我會推薦python作爲這個語言,在我的測試中,它更友好,並且有越來越多的python模塊用於處理遙感數據。此外,python是開源的,所以你可以避免MATLAB等。

RSGISLib軟件具有python綁定,非常適合處理遙感數據。我完全在我的博士學位中使用它。該軟件可以在這裏找到http://www.rsgislib.org和一個偉大的博客演示其應用程序可以在這裏找到https://spectraldifferences.wordpress.com

我有地理背景,但能夠輕鬆地使用python。在我看來,C++和JAVA等更復雜,因爲python經常有模塊爲您執行棘手的位(訪問圖像,檢查投影等)。