是否可以利用C、C++、Java等计算机语言对卫星图像进行分析,找出可能存在的降雨区、水体、林区、荒地等湿气景观?其中哪一个最好?复杂吗?
是否有其他选项可以使用高级 C、C++、Java 版本来完成此项目?这些语言有没有什么特殊的功能可以不使用MATLAB、LABVIEW等工具来读取像素值?
Is it possible to analyze the satellite images to find the possibility of rainfall ares, moisture landscapes such as water bodies, forest areas, wasteland, etc by using computer languages such as C, C++, Java? Which is the best among these? Is It Complicated?
Is there any other option to do this project using advanced C, C++, Java versions? Do these languages have any special function to read pixel values without using tools such as MATLAB, LABVIEW?
发布评论
评论(4)
替代文本 http://xs.to/thumb-1F0D_4B62DE2C.jpg替代文本 http://xs.to/thumb-0C7F_4B62DFCB.jpg
书中有一节“数字图像处理第三版”关于陆地质量分析。另请参阅“C 语言中的数字图像处理”,您可以在此处下载。
IIRC 和这个 NASA 页面似乎证实了,而且我不是物理学家,你需要具有完整(不仅仅是可见)电磁频谱的卫星图像。这可以让你挑选出水、植被等。
陆地卫星波段将有助于:
1 沿海水域测绘、土壤/植被区分、森林分类、
人造特征识别
2 植被判别与健康监测、人工特征识别
3 植物种类识别、人造特征识别
4 土壤湿度监测、植被监测、水体判别
5 植被水分含量监测
6 地表温度、植被胁迫监测、土壤湿度监测、
云分异、火山监测
7 矿物和岩石辨别、植被含水量
详细信息请参见:Lillesand, T. 和 Kiefer, R., 1994。遥感和图像解释。约翰·威利父子公司,纽约,第 14 页。 468.
您可能还想创建图像的 3D 浮雕,并尝试将光谱数据与山谷、可能的河流点、沿海地区等相关联。简而言之有数据可以通过图像分析进行估算
alt text http://xs.to/thumb-1F0D_4B62DE2C.jpgalt text http://xs.to/thumb-0C7F_4B62DFCB.jpg
There is a section in the book "Digital Image Processing 3rd Edition" about land-mass analysis if I recall correctly. Also check out "Digital Image Processing in C" which you can download here.
IIRC and this NASA page seems to confirm, and I am no physicist, you will need satallite images with the complete (not just visible) electromagnetic spectrum. This allows you to pick out water, vegitation and so on.
The landsat bands will help:
1 coastal water mapping, soil/vegetation discrimination, forest classification,
man-made feature identification
2 vegetation discrimination and health monitoring, man-made feature identification
3 plant species identification, man-made feature identification
4 soil moisture monitoring, vegetation monitoring, water body discrimination
5 vegetation moisture content monitoring
6 surface temperature, vegetation stress monitoring, soil moisture monitoring,
cloud differentiation, volcanic monitoring
7 mineral and rock discrimination, vegetation moisture content
For more details see: Lillesand, T. and Kiefer, R., 1994. Remote Sensing and Image Interpretation. John Wiley and Sons, Inc., New York, p. 468.
You might also want to create a 3D relief of the images and try and relate the spectrum data with valleys, likely river points, coastal regions and so on. In short there is data to make estimates through image analysis
纹理运算符可以区分卫星图像中的地理区域。这是 Robert Haralick 的论文,描述了识别水的经典纹理运算符 方面
我在开源 Orfeo 取得了一些成功toolbox,它是一个基于 ITK 的 C++ 图像处理库,但专门用于卫星图像。您可以在此处文档中查看纹理运算符的一些实现示例。
Texture operators can differentiate geographical regions in satellite imagery. Here is a paper from Robert Haralick describing classic texture operators to identify water bodies, grass regions, metropolitan areas, etc.
I've had some success with the open source Orfeo toolbox, which is a C++ image processing library based on ITK, but specifically for satellite imagery. You can see some implementation examples of texture operators in the documentation here.
我会推荐Python,因为根据我的经验,这种语言对用户更加友好,并且有越来越多的Python模块用于处理遥感数据。此外,Python 是开源的,因此您可以避免使用 MATLAB 等。RSGISLib
软件具有 Python 绑定,非常适合处理遥感数据。我在整个博士期间都使用了它。该软件可以在这里找到http://www.rsgislib.org,并且可以找到一个展示其应用程序的精彩博客这里 https://spectraldifferences.wordpress.com
我有地理背景,但能够轻松使用 python。在我看来,C++ 和 JAVA 等更加复杂,因为 python 通常具有为您执行棘手操作(访问图像、检查投影等)的模块。
I would recommend python for this as the language, in my expeicence, is more user friendly and there a growing number of python modules for processing remotely sensed data. Furthermore, python is open source so you can avoid MATLAB etc.
The RSGISLib software has python bindings and is ideal for processing remote sensing data. I used it entirely throughout my PhD. The software can be found here http://www.rsgislib.org and a great blog demonstrating its applications can be found here https://spectraldifferences.wordpress.com
I have a background in Geography but was able to use python with ease. C++ and JAVA etc are more complicated in my opinion, as python often has modules that do the tricky bits (accessing imagery, checking projections etc) for you.
帕尼瓦尼的回答是一个好的开始——就他建议的纹理分析而言。 Imagemagick 不常用于纹理分析,但它绝对是一个可能的工具。检查一下:
这三个不同的指标(图像熵、图像标准差、图像中高频与低频内容的比率)均与从沙漠到农村到郊区到城市的光谱密切相关。如果你将这些放入分类器(例如神经网络)中,我打赌你可以开发出一个不错的预测器来预测谷歌地图卫星图像是沙漠、农村、郊区还是城市土地。
paniwani's answer is a good start--insofar as he suggests texture analysis. Imagemagick is not often used for texture analysis, but it's definitely a possible tool for doing so. Check this out:
Those three different metrics (image entropy, image standard deviation, ratio of hi freq to lo freq content in an image) are each decently correlated with a spectrum from desert-to-rural-to-suburban-to-urban. If you put these into a classifier (e.g., a neural network), I bet you could develop a decent predictor of whether a google map satellite image is desert, rural, suburban, or urban land.