Обработка изображений спутниковых изображений - PullRequest
11 голосов
/ 29 января 2010

Можно ли анализировать спутниковые снимки, чтобы найти вероятность выпадения осадков, влажных ландшафтов, таких как водоемы, леса, пустыри и т. Д., Используя компьютерные языки, такие как C, C ++, Java? Какой из них лучший? Это сложно?

Есть ли другой вариант сделать этот проект с использованием продвинутых версий C, C ++, Java? Есть ли в этих языках какие-либо специальные функции для считывания значений пикселей без использования таких инструментов, как MATLAB, LABVIEW?

Ответы [ 4 ]

6 голосов
/ 29 января 2010

альтернативный текст http://xs.to/thumb-1F0D_4B62DE2C.jpg альтернативный текст http://xs.to/thumb-0C7F_4B62DFCB.jpg

В книге " Цифровая обработка изображений, 3-е издание " есть раздел об анализе массы земли, если я правильно помню. Также ознакомьтесь с разделом «Цифровая обработка изображений в C», который вы можете скачать здесь .

IIRC и эта страница НАСА, кажется, подтверждает , и я не физик, вам потребуются спутниковые изображения с полным (не только видимым) электромагнитным спектром. Это позволяет выбирать воду, растительность и т. Д.

Изображения Landsat 7 - цветные композиты, сделано путем назначения трех основных цвета до трех полос улучшенного Датчик тематического картографа (ETM +). Эти изображения не цветные фотографии, они являются "ложными цветами" изображения (зеленые поля не обязательно будет выглядеть зеленым в изображение).

Лендсат-банды помогут:

1 картирование прибрежных вод, дискриминация почвы / растительности, классификация лесов, идентификация искусственного объекта
2 дискриминация растительности и мониторинг здоровья, идентификация искусственных объектов
Идентификация 3 видов растений, идентификация искусственных объектов
4 мониторинг влажности почвы, мониторинг растительности, распознавание водоемов
5 мониторинг влажности растительности
6 температура поверхности, мониторинг растительного стресса, мониторинг влажности почвы, дифференциация облаков, вулканический мониторинг
7 минеральная и породная дискриминация, влажность растительности

Подробнее см .: Lillesand, T. and Kiefer, R., 1994. Дистанционное зондирование и интерпретация изображений. John Wiley and Sons, Inc., Нью-Йорк, с. 468.

Возможно, вы также захотите создать трехмерный рельеф изображений и попытаться связать данные спектра с долинами, вероятными точками рек, прибрежными районами и так далее. Короче говоря есть данные для оценки путем анализа изображений

3 голосов
/ 12 декабря 2011

Операторы текстур могут различать географические регионы в спутниковых изображениях. Вот документ от Роберта Харалика, в котором описаны классические операторы текстур для идентификации водоемов, травяных зон, городских районов и т. Д.

У меня был некоторый успех с открытым исходным кодом Orfeo toolbox, который представляет собой C ++ библиотеку обработки изображений, основанную на ITK , но специально для спутниковых изображений. Вы можете увидеть некоторые примеры реализации операторов текстуры в документации здесь .

Pre-texture Post-texture

1 голос
/ 19 ноября 2015

Я бы порекомендовал для этого python, так как язык, по моему опыту, более удобен для пользователя и растет число модулей python для обработки данных, получаемых дистанционно. Кроме того, python является открытым исходным кодом, поэтому вы можете избежать MATLAB и т. Д.

Программное обеспечение RSGISLib имеет привязки Python и идеально подходит для обработки данных дистанционного зондирования. Я использовал его полностью на протяжении всей моей докторской диссертации. Программное обеспечение можно найти здесь http://www.rsgislib.org, а отличный блог, демонстрирующий его приложения, можно найти здесь https://spectraldifferences.wordpress.com

У меня есть опыт работы в географии, но я с легкостью смог использовать python. C ++, JAVA и т. Д., На мой взгляд, более сложны, так как в python часто есть модули, которые делают за вас хитрые биты (доступ к изображениям, проверка проекций и т. Д.).

0 голосов
/ 13 декабря 2012

Ответ Панивани - хорошее начало, поскольку он предлагает анализ текстуры. 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

Эти три различных показателя (энтропия изображения, стандартное отклонение изображения, отношение содержания hi-freq к содержимому lo-freq в изображении), каждый из которых имеет приличную корреляцию со спектром от пустыни до сельской местности, от пригородной зоны до городской. Если вы поместите их в классификатор (например, в нейронную сеть), держу пари, вы могли бы разработать достойный предиктор того, является ли спутниковое изображение карты Google пустыней, сельской, пригородной или городской землей.

...