是否有可能通过使用C,C ++,Java等计算机语言来分析卫星图像以发现降雨的可能性,水体,森林地区,荒地等湿润景观?哪些是最好的?这很复杂吗?
使用高级C,C ++,Java版本还有其他选项来执行此项目吗?这些语言是否具有读取像素值的特殊功能,而无需使用MATLAB,LABVIEW等工具
答案 0 :(得分:6)
alt text http://xs.to/thumb-1F0D_4B62DE2C.jpg alt text http://xs.to/thumb-0C7F_4B62DFCB.jpg
如果我没记错的话,“Digital Image Processing 3rd Edition”一书中有一节关于土地质量分析。另请查看“C中的数字图像处理”,您可以下载here。
Landsat 7图像是彩色复合材料, 通过分配三个主要的 增强的三个色带的颜色 专题Mapper(ETM +)传感器。这些 它们不是彩色照片 是“假色”图像(绿色字段 不一定看起来很绿 图像)。
Landat乐队将提供帮助:
1沿海水图,土壤/植被识别,森林分类,
人造特征识别
2植被歧视与健康监测,人为特征识别
3植物种类鉴定,人造特征鉴定
4土壤水分监测,植被监测,水体歧视
5植被含水量监测
6地表温度,植被应力监测,土壤水分监测,
云分化,火山监测
7矿物和岩石歧视,植被含水量
有关详细信息,请参阅:Lillesand,T。和Kiefer,R.,1994。遥感和图像解释。 John Wiley and Sons,Inc.,New York,p。 468.
您可能还想创建图像的3D浮雕,并尝试将光谱数据与山谷,可能是河流点,沿海地区等相关联。简而言之,有数据通过图像分析进行估算
答案 1 :(得分:3)
纹理运算符可以区分卫星图像中的地理区域。这是来自Robert Haralick的paper,描述了识别水体,草地区,大都市区等的经典纹理算子。
我在开源Orfeo工具箱上取得了一些成功,这是一个基于ITK的C ++图像处理库,但专门用于卫星图像。您可以在文档here中看到纹理运算符的一些实现示例。
答案 2 :(得分:1)
我建议使用python作为语言,在我的经验中,它更加用户友好,并且有越来越多的python模块用于处理遥感数据。此外,python是开源的,所以你可以避免使用MATLAB等。
RSGISLib软件具有python绑定功能,是处理遥感数据的理想选择。我在整个博士期间都使用过它。可在此处找到该软件http://www.rsgislib.org,可在此处找到展示其应用程序的精彩博客https://spectraldifferences.wordpress.com
我有地理背景,但能够轻松使用python。在我看来,C ++和JAVA等更复杂,因为python经常有模块可以为你做一些棘手的工作(访问图像,检查预测等)。
答案 3 :(得分:0)
$ 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
这三个不同的指标(图像熵,图像标准偏差,图像中的高频率与低频率内容的比率)各自与从沙漠到乡村到郊区到城市的频谱正好相关。如果你将这些放入分类器(例如神经网络)中,我敢打赌你可以开发一个关于谷地图卫星图像是沙漠,乡村,郊区还是城市土地的合适预测器。