精华内容
下载资源
问答
  • 多时相影像
    千次阅读
    2021-03-01 13:28:25

    本文是论文《多时相遥感影像变化检测方法综述》的阅读笔记。由于文章是中文的,强烈建议阅读原文,本文也尽可能用文章中的原话来描述问题。

    一、变化检测简述

    变化检测根据对同一物体或现象在不同时间的观测来确定其不同的处理过程。遥感影像变化检测的研究目的是找出感兴趣的变化信息,滤除作为干扰因素的不相干的变化信息。

    现有绝大多数变化检测应用中,常用的方法仍然是目视解译和人工手动勾画,需要耗费大量人力及时间,处理效率低下。变化检测的方法和理论模型有很多,如代数法、分类法、面向对象法、时间序列分析法和可视化法等。现有的检测方法没有哪一种是适合所有场景的。变化检测没有通用的流程,但主要覆盖数据预处理、变化检测方法、阈值分割、精度评定等方面。

    二、变化检测的分类和发展历程

    按照不同的分类标准,变化检测的分类如下图所示。在监督变化检测中先验信息可以来源于训练好的模型、GIS矢量数据等。

    下图是变化检测方法发展的时间脉络图。初始发展期(20世纪80年代)主要以像元级统计方法为主;第一次高潮(20世纪90年代)主要是机器学习带来了生机;第二次高潮(2000 - 2009年)对象级变化检测引起了各种关注。伴随着高空间分辨率遥感影像的商业化,面向对象影像分析技术被引入高分辨率遥感影像分析中,变化检测的基本单元由像素逐渐过渡到对象;第三次浪潮(2010年以后)大数据和人工智能使变化检测进入新的热潮。

    三、变化检测的预处理

    几何配准误差是变化检测最主要的误差来源之一,因此许多变化检测方法,特别是像素级变化检测方法,都要求参与变化检测的多时相影像已完成高精度的配准;但对于不少特征级的变化检测方法,如面向对象法,由于对提取出的特性或目标进行比较时可采用顾及配准误差的缓冲区分析法,从而避免了过于苛刻的高精确配准要求。

    辐射校正是预处理的另一个重要环节。不同时期的光学遥感影像,如拍摄季节与日期不同、太阳高度角不同、成像角度不同、气象条件不同等,都会造成影像辐射值不同,显著地影响变化检测结果的精度,所以通常在变化检测之前需要进行辐射校正。常用的辐射校正方法包括绝对辐射校正和相对辐射校正两种类型。绝对辐射校正需要大量的成像及其他参数,因此相对辐射校正是一种更经常采用的方法。相对辐射校正方法将一幅影像作为参考影像,调整另一幅影像的辐射特性,使之与参考影像一致。但并非所有的变化检测方法都需要辐射校正,比如分类后变化检测方法是没必要进行辐射校正的。

    四、目前主流的变化检测方法

    1. 传统方法

    传统变化检测方法结果的精度对差异图的依赖很大,但生成差异图的过程会损失很多信息,导致检测结果精度不稳定。

    2. 基于深度学习的方法

    深度学习网络端对端的结构,使得我们能够直接从多时相遥感影像中获得变化检测结果。

    3. 基于面向对象影像分析的方法

    区别于像素级方法,对象级变化检测最重要的一个环节就是影像分割。影像对象较之单个像素包含了地物更多的整体信息,基于对象的影像分析方法更接近于人眼识别图像过程。根据变化检测策略的不同,对象级变化检测方法大致可以分为直接对象变化检测、同步分割后对象变化检测、分类后变化检测几个类型。分类后变化检测方法是比较经典的方法,对不同时相影像分别进行独立面向对象影像分类,然后再进行对象所属类别、几何形状及空间上下文信息等对比分析,获取变化区域及变化轨迹。

    4. 场景变化分析方法

    场景变化分析就是在语义层次分析多时相对应场景的语义类别是否发生变化以及发生了何种变化。

    5. 三维变化检测方法

    二维变化检测仅能检测平面上的变化,对高度上的变化则无能为力。三维变化检测方法的确定是三维数据获取的高成本及高难度,以及由于三维变化检测增加了新的数据维度,因此还将面临三维数据本身的不确定性问题。根据三维变化检测中三维信息使用的不同,三维变化检测方法大致可以分为几何信息直接比较的方法和几何信息与光谱信息相结合的方法。

    6. 时间序列变化检测方法

    时间序列变化检测方法主要针对长时间序列遥感影像的时间趋势分析。

    7. 混合方法

    混合方法是指综合运用上述方法中的两种或两种以上方法进行变化检测处理,包括两方面内容:一是在检测的不同阶段和步骤中使用不同的检测方法进行处理,即基于过程的混合方法;二是分别使用不同的变化检测方法对各自的结果进行综合分析,即基于结果的混合方法。

    五、精度评价

    根据变化检测的精度评估层次,可将变化检测的误差矩阵分为简单变化检测误差矩阵和分类变化检测误差
    矩阵。误差矩阵和Kappa系数评价方法是最成熟、最常用的变化检测精度评估方法。目前变化检测的精度评估主要是基于像素级的,误差矩阵是最常用、最成熟的精度评估方法。

    六、自己的理解

    说一点自己的理解。比如给定两张一年以前的卫星图像和一张一年后的卫星图像,一年前图像中的有些东西可能在一年后消失了,如被河水淹没的岛屿;也可能在一年后出现了新的东西,如新的建筑物。变化检测的目的就是找出这些发生了变化(消失或出现)的地方,并标注出来。标注图可以是一个二值图,1表示发生了变化,0表示没发生变化。

    最简单的方式就是两图做差,然后取绝对值。但是这样这样有个问题,比如都是草地,在不同时间拍摄得到的像素值可能是不同的,所以两张图做差后可能只是非常接近于0。而我们要得到的是一个二值图,一个简单的方法是设置一个阈值,小于该阈值的,就认为没发生变化,即在两张图中是相同的东西。还有一个方法就是先对两张图像中的物品进行分类,比如分成草地、河流、建筑物等等,然后将得到的分类图做差。

    更多相关内容
  • modis 多影像利用数据质量文件进行多时相替代,用好的像元值的平均值代替每一像元值
  • 多时相遥感影像配准后,将配准结果使用 Qt 模块化显示(使用 C++ 语言实现),目的是为了更方便的展示配准结果,代码备注非常详细,很适合学习使用!!!
  • 多时相影像动态检测技术
  • 遥感多时相影像动态检测
  • 该资源主要是对多时相影像变化检测进行精度评价(C++实现),代码注释非常详细,非常实用!!!
  • 多时相影像进行精度评估,通常都是使用混淆矩阵求其精确率、漏检率和虚警率;但是要想使用混淆矩阵求上述指标一般都需要知道参考图,也就是在变化检测前知道变化部分和未变化部分,然后用其和变化检测后的结果进行...

            您请细品!!!处理过程可能较为繁琐,但是精度指标很具有代表性!!!

            对多时相影像进行精度评估,通常都是使用混淆矩阵求其精确率漏检率虚警率;但是要想使用混淆矩阵求上述指标一般都需要知道参考图,也就是在变化检测前知道变化部分和未变化部分,然后用其和变化检测后的结果进行对比,最后求出上述指标;

            道路变化检测使用的往往是矢量数据,即如果想使用变化检测结果和参考图进行对比求变化检测精度指标的话,参考图的生成也必须使用矢量数据;难点在于,道路二值图在进行矢量化时,矢量化结果受道路拓扑结构的影响,从而带来一系列问题,即得到的精度指标和真实情况相差较远;亲测过,在使用道路二值图矢量化结果生成参考图时,未变化部分无法完全重合!!!

            退而求其次,先用道路二值图生成参考图,然后再对参考图进行细化、矢量化操作;此举有原因有二:

    (1)生成的参考图相当于把原始道路分为了变化部分和未变化部分两张影像,降低了道路拓扑结构对道路二值图矢量化的影像,使其结果更接近真实情况;

    (2)多时相影像中未变化的道路占很大比例,所以针对生成的参考图进行细化、矢量化时,其结果更接近真实情况;

    1、生成参考图

    (1)制作标签

            我使用的是 labelme 进行打样,标签制作流如下:

            A.在对两幅多时相影像进行打样时,任意挑选其中的一幅影像旧影像(或新影像),对比两幅影像,然后针对未变化部分对旧影像(新影像)进行打样,打样完成后生成的是文件;

            B.对另一幅影像随意打样(随便打两条线即可),目标是为了生成文件;

            C.打开文件,打开方式选择 vs/记事本 都可以,然后把第一个 .json 文件中的打样数据复制到第二个 .json 中(注意:在复制之前需要把第二个 .json 中的打样数据删掉),并保存;

            D.最后用 labelme 分别打开两个 .json 文件,然后对剩余部分进行打样即可;

            说明:上面做法的目的是,使得两幅多时相影像中未变化部分,使用相同的打样数据,以便后面获取参考图像;

     下面举例说明:

     下面是使用上述方法生成的多时相影像的道路二值图;

     (2)生成参考图

    A.生成参考图核心代码

    //生成参考图
    void myReference::outputImage()
    {
    	//变化、未变化部分图像,change_images、unchange_images是全局变量
    	change_images = Mat::zeros(oldImage.rows, oldImage.cols, CV_8UC3);
    	unchange_images = Mat::zeros(oldImage.rows, oldImage.cols, CV_8UC3);
    
    	//把输入的影像读到矩阵中以便显示
    	for (int i = 0; i < change_images.rows; i++)
    	{
    		Vec3b* image1_1 = change_images.ptr<Vec3b>(i);			//变化部分图像
    		Vec3b* image2_2 = unchange_images.ptr<Vec3b>(i);		//未变化部分图像
    		Vec3b* image3_3 = oldImage.ptr<Vec3b>(i);				//旧影像二值图
    		Vec3b* image4_4 = newImage.ptr<Vec3b>(i);				//新影像二值图
    
    		for (int j = 0; j < change_images.cols; j++)
    		{
    			//变化部分图像
    			if ((image4_4[j][0] == 0 && image4_4[j][1] == 0 && image4_4[j][2] == 0) &&
    				(image3_3[j][0] != 0 && image3_3[j][1] != 0 && image3_3[j][2] != 0))
    			{
    				image1_1[j][0] = image3_3[j][0];
    				image1_1[j][1] = image3_3[j][1];
    				image1_1[j][2] = image3_3[j][2];
    			}
    			else if ((image4_4[j][0] != 0 && image4_4[j][1] != 0 && image4_4[j][2] != 0) &&
    				(image3_3[j][0] == 0 && image3_3[j][1] == 0 && image3_3[j][2] == 0))
    			{
    				image1_1[j][0] = image4_4[j][0];
    				image1_1[j][1] = image4_4[j][1];
    				image1_1[j][2] = image4_4[j][2];
    			}
    			//未变化部分图像
    			else if ((image4_4[j][0] != 0 && image4_4[j][1] != 0 && image4_4[j][2] != 0) &&
    				(image3_3[j][0] != 0 && image3_3[j][1] != 0 && image3_3[j][2] != 0))
    			{
    				image2_2[j][0] = image4_4[j][0];
    				image2_2[j][1] = image4_4[j][1];
    				image2_2[j][2] = image4_4[j][2];
    			}
    		}
    	}
    
    	cv::imwrite("..\\myChangedetection\\image_save\\change_reference.png", change_images);		//保存变化部分
    	cv::imwrite("..\\myChangedetection\\image_save\\unchange_reference.png", unchange_images);	//保存未变化部分
    
        //下面代码主要功能是把结果显示在QT界面中
    	cv::resize(change_images, change_images, Size(SIZE_ROW, SIZE_COL));
    	cv::resize(unchange_images, unchange_images, Size(SIZE_ROW, SIZE_COL));
    
    	QImage change_img = QImage((const unsigned char*)(change_images.data), change_images.cols, change_images.rows, QImage::Format_RGB888);
    	QImage unchange_img = QImage((const unsigned char*)(unchange_images.data), unchange_images.cols, unchange_images.rows, QImage::Format_RGB888);
    
    	label_1->setPixmap(QPixmap::fromImage(change_img));
    	label_1->resize(QSize(change_img.width(), change_img.height()));
    
    	label_2->setPixmap(QPixmap::fromImage(unchange_img));
    	label_2->resize(QSize(unchange_img.width(), unchange_img.height()));
    
    	/**************** 精度评估 ***************/
    
    	accuracyAssess();
    }

     B.参考图结果

    注:左图是变化部分,有图是未变化部分; 

    C.参考图矢量化结果 

     注:左图是变化部分,有图是未变化部分;

            说明:在生成了参考图后,然后对其进行细化、矢量化操作,最后使用该结果去进行变化检测精度评估;上面给的代码是生成参考图的核心代码,我在实现时使用 QT 将其封装成独立的模块了,如有需要可留言!!!

    2、精度评价

    根据上述生成的参考图矢量化结果和自己变化检测算法得到的结果进而求变化检测精度评价指标;

    (1)精度评估核心代码

    //把输入的道路数据细化、矢量化
    void myReference::dealImage(QString str1, QString str2)
    {
    	process.createVectorFromFile(str1, "old_Thin_reference.png");	 //旧时相影像栅格数据矢量化
    	process.createVectorFromFile(str2, "new_Thin_reference.png");	 //新时相影像栅格数据矢量化
    
    	process.simplifyVector(0);		//简化旧影像矢量化结果
    	process.simplifyVector(1);		//简化新影像矢量化结果
    
    	//输出简化后的矢量道路数据
    	oldImageoutputResult = process.outputBinaryResult(0, "change_Vector_reference.png", ".\\old_vector_result.txt");
    	newImageoutputResult = process.outputBinaryResult(1, "unchange_Vector_reference.png", ".\\new_vector_result.txt");
    
    	//注:此时 oldImageoutputResult 中存放的矢量化化结果是单通道矩阵
    }
    
    
    //精度评估
    void myReference::accuracyAssess()
    {
    	//读取变化和未变化部分参考图
    	QString str1 = QString::fromStdString("..\\myChangedetection\\image_save\\change_reference.png");
    	QString str2 = QString::fromStdString("..\\myChangedetection\\image_save\\unchange_reference.png");
    
    	//参考图像道路数据矢量化
    	dealImage(str1, str2);
    
    	Mat old_images, new_images;
    
    	//参考图矢量化结果
    	Mat change_image = imread("..\\myChangedetection\\image_save\\change_Vector_reference.png");
    	Mat unchange_image = imread("..\\myChangedetection\\image_save\\unchange_Vector_reference.png");
    
    	int accuracy = 0;			//精确率
    	int miss_detection = 0;		//漏检率
    	int false_alarm = 0;		//虚警率
    	int all_roads = 0;			//所有道路
    
    	//读取变化检测结果
    	Mat outputResult = imread("..\\myChangedetection\\image_save\\final_all.png");
    
    	for (int i = 0; i < outputResult.rows; i++)
    	{
    		Vec3b* image1_1 = outputResult.ptr<Vec3b>(i);			//变化检测结果
    		Vec3b* image2_2 = change_image.ptr<Vec3b>(i);			//参考图变化部分
    		Vec3b* image3_3 = unchange_image.ptr<Vec3b>(i);			//参考图未变化部分
    		for (int j = 0; j < outputResult.cols; j++)
    		{
    			//红色(0, 0, 255)、黄色(0, 255, 255)、绿色(0, 255, 0)
    
    			//正确率—变化部分
    			if (((image1_1[j][0] == 0 && image1_1[j][1] == 0 && image1_1[j][2] == 255) || (image1_1[j][0] == 0 && image1_1[j][1] == 255 && image1_1[j][2] == 255)) &&
    				(image2_2[j][0] == 255 && image2_2[j][1] == 255 && image2_2[j][2] == 255))
    			{
    				accuracy++;
    				all_roads++;
    			}
    			//正确率—未变化部分
    			else if ((image1_1[j][0] == 0 && image1_1[j][1] == 255 && image1_1[j][2] == 0) &&
    				(image3_3[j][0] == 255 && image3_3[j][1] == 255 && image3_3[j][2] == 255))
    			{
    				accuracy++;
    				all_roads++;
    			}
    			//虚警率
    			else if (((image1_1[j][0] == 0 && image1_1[j][1] == 0 && image1_1[j][2] == 255) || (image1_1[j][0] == 0 && image1_1[j][1] == 255 && image1_1[j][2] == 255)) &&
    				(image3_3[j][0] == 255 && image3_3[j][1] == 255 && image3_3[j][2] == 255))
    			{
    				false_alarm++;
    				all_roads++;
    			}
    			//漏检率
    			else if ((image1_1[j][0] == 0 && image1_1[j][1] == 255 && image1_1[j][2] == 0) &&
    				(image2_2[j][0] == 255 && image2_2[j][1] == 255 && image2_2[j][2] == 255))
    			{
    				miss_detection++;
    				all_roads++;
    			}
    		}
    	}
    	double accuracy_rate = (double)accuracy / all_roads;						//精确率
    	double miss_detection_rate = (double)false_alarm / all_roads;				//漏检率
    	double false_alarm_rate = 1 - accuracy_rate - miss_detection_rate;			//虚警率
    	
    	qDebug() << u8"变化检测精确率为:" << accuracy_rate << endl;
    	qDebug() << u8"变化检测虚警率为:" << miss_detection_rate / all_roads << endl;
    	qDebug() << u8"变化检测漏检率为:" << false_alarm_rate / all_roads << endl;
    }
    

    说明:上述代码第一个函数中 :createVectorFromFile、simplifyVector、outputBinaryResult 分别是自己的道路二值图矢量化、矢量化简化、输出矢量化结果函数;

    (2)变化检测结果

    说明:红色为拆除部分、黄色为新增部分、绿色为未变化部分; 

    (3)精度评价结果

     

            因为研究内容偏工程,所以基本上所有的内容都使用 VS + QT 封装成独立的模块,由上面给出的代码和显示结果也可以看出; 如果您仅仅需要求变化检测结果,针对上述代码微调足以(主要是路径);

    如需要完整代码模块请移步:https://download.csdn.net/download/weixin_47156401/72310899

    展开全文
  • 多时相遥感影像配准(附有完整代码)

    千次阅读 2021-12-20 09:26:14
    图像配准(Image registration)就是将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或幅图像进行匹配、叠加的过程,它已经被广泛地应用于遥感数据分析、计算机视觉、...

    简单介绍:        

            图像配准(Image registration)就是将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程,它已经被广泛地应用于遥感数据分析、计算机视觉、图像处理等领域。

            配准算法主要有如下几类:基于灰度的配准,基于特征的配准,基于相位的配准。在具体选择配准方法时要根据图像数据的特点、具体应用的需求来考虑,选择以上其中一种或其组合。如常用的基于特征的方法是利用两幅影像上预先提出的点、线、面特征,然后对两个特征集进行匹配,下图为基于特征的配准过程示例:先提取特征点,然后对特征点集进行匹配,最后对图像进行变换。

    配准模块化:

            多时相影像配准时,一般消耗时间较长,特别是算法所检测出的特征点较多时,所以本文致力于使用 Qt 把配准功能进行模块化,以便能够更好、更快的的展示配准效果

            本文主要是把配准后的结果使用 Qt 进行模块化显示,所以暂且抛开遥感影像的种类和来源,以及配准效果;

            实际项目中,使用的是多时相遥感卫星影像,下面是从网上找了两张多时相SAR影像来展示配准模块化的效果;

    1、输入两幅影像,左边是旧时相影像,右边是新时相影像;

    2、点击左下角的开始配准按钮,就会显示配准效果; 

     3、点击误差分析按钮,就会显示配准后正确匹配点对的误差分析;

     4、点击重置影像,就会恢复如初;

     

     如果有需要可自行下载代码:多时相影像配准结果使用Qt进行模块化显示-C/C++文档类资源-CSDN下载

    展开全文
  • 针对海量遥感影像时间分辨率不断提高,多时相遥感影像存储空间耗费大、查询效率低的问题,提出一种针对多时相遥感影像数据存储管理的模型和方法。首先确定多时相遥感影像的基态影像,然后运用变化检测技术计算出不同时...
  • 遥感方向的重要技术——动态监测; 从几何校正到影像融合,然后目视解译等等; 主成分分析法
  • 多时相遥感影像分类方法通常使用人工设置的转移矩阵作为时间上下文信息,这样不仅难以获得准确的转移矩阵,而且没有充分利用时间上下文信息。针对多时相遥感图像中的时间与空间上下文信息难以构建的问题,提出了一种...
  • 浅谈基于多时相遥感影像的变化检测技术,桂林,,变化检测作为一种手段,已经广泛地应用在各个领域。灾害动态监测、环境污染监测以及城市规划等方面都已涉及到适时、有效的变化监�
  • 历史影像图-卫星影像-谷歌历史地图 通过 BIGEMAP查看近10年的卫星影像历史地图,甚至更久的历史卫星图。电脑端下载:http://download.bigemap.com/bmsetup.rar 手机端下载地址:http://www.bigemap.com/app/ ...

    历史影像图-卫星影像-谷歌历史地图

    APP扫码安装

    通过 BIGEMAP查看近10年的卫星影像历史地图,甚至更久的历史卫星图。

    手机端下载地址:http://www.bigemap.com/app/

    展开全文
  • 遥感影像具有周期性特点,利用这一特性就可以用于监测一个地区的地表变化情况,遥感影像是我们监测地球变化最直接和权威的数据源。从遥感影像中可以获取的变化信息包括:海岸线、森林健康、城市扩张、农业生产、自然...
  • 设置ENVI的系统参数:修改默认文件夹 设置SARscape的系统参数,修改默认文件夹 加载Sentinel-1的系统参数(General) 导入数据(导入Sentinel-1和...多时相滤波:可以把多时相的噪声统计出来,比单时相的更好 ...
  • 针对参与变化检测影像的特点,归纳多时相影像匹配方法应满足的条件,提出了一种基于Zernike矩的匹配策略。在进行多时相影像匹配时,该方法对灰度的线性变化不敏感,而且可以匹配存在较大旋转角度的影像。试验表明,...
  • 物联网-智慧交通-多时相多传感器遥感影像配准研究.pdf
  • 代码主要是对变化检测结果做一个可视化实现,语言 C++,工具 vs2019 + Qt 能满足大多数需求且简单易懂适合学习,代码非常详细!!!
  • 为了有效改善遥感影像提取湖泊边界信息的可靠性和精度,减少人为误差,提出了一种利用多时相遥感影像提取边界信息的加权平均融合算法以及误差的域法修正处理方法。结果表明,该方法能有效融合各时相影像信息,提高...
  • 计算机研究 -基于小波分析和聚类的多时相遥感影像变化检测.pdf
  • 基于历史数据的空间约束下的长期多时相遥感影像配准
  • 提出了一种基于案例(CASE)推理的多时相SAR影像分类方法。选用北京地区2000年(4景)和2004年(3景)的多时相Radarsat-1 SAR影像及相应地理基础分类图作为数据进行实验。结果表明,该方法能得到较好的SAR影像分类...
  • DSFANet(深慢特征分析网络) Tnesorflow实现用于多时相抽象的本文基于深度网络和慢特征分析(SFA)理论,提出了一种新的多时相遥感图像变化检测算法,即深度慢特征分析(DSFA)。 在DSFA模型中,两个对称深度网络...
  • 基于多时相遥感影像的Desakota典型区城市扩展研究,袁宝华,张晓祥,研究选择1978~2004年5个时相的陆地卫星遥感影像为基础数据源,以半城市化(Desakota)典型区——江苏省吴江市为例,以城市扩展的量测、
  • 基于多源多时相遥感影像的城镇扩张动态监测方法研究,周小成,汪小钦,利用遥感技术来动态监测城镇扩展己成为一个重要的研究和应用领域。基于TM和ASTER多源多时相遥感影像和地形数据,以福建省漳州市区�
  • 针对多时相遥感影像的变化检测技术进行研究,根据图像的变化推出研究目标的变化信息,完成对研究目标的动态监测,该技术无论在理论上还是在各个领域的应用中都具有重要的研究意义和广泛的应用前景。文章根据多时相...
  • 介绍了命题逻辑演算方法。以武汉地区1993年和2002年的 Landsat T M数据为例,应用该方法对近10年武汉城镇建筑的覆盖变化进行了试验,证明了该方法用于土地利用动态变化的可行性。
  • 基于多时相CBERS和Landsat ETM+影像的徐州市土地利用覆盖变化研究,柳思聪,赵银娣,本文基于CBERS CCD和Landsat ETM+两种遥感影像数据源,利用决策树、支持向量机和最大似然分类方法,对江苏省徐州市2001年、2005年...
  • 通过对影像进行光谱特征分析,及对各种植被类型进行物候特征分析,选用以NDVI数据为主的多波段、多时相的MODIS影像数据进行最小噪声分离MNF变换,然后进行灰值形态学滤波,运用阈值分割法提取旱地,并运用自组织特征...
  • 基于多时相遥感影像提取作物种植信息方法方面的文献,里面介绍的基于知识的分类,值得借鉴

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,056
精华内容 9,222
关键字:

多时相影像