【图像分割】基于K-means算法实现遥感图像分类附Matlab代码

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频资源包5000点
简介: 【图像分割】基于K-means算法实现遥感图像分类附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

实验目的

利用matlab软件,通过K-means算法的方法处理给定的7幅遥感图像,将其分成水域、居民区和其他三类区域。

实验方法:

1 遥感图像的分类[1]

遥感图像是通过反映地物光谱信息的像元亮度值及反映地物空间信息的像元空间变化来表征不同地物的。对遥感图像中各类地物的光谱信息和空间信息进行分析,选择特征(能够反映地物光谱信息和空间信息并可用于遥感图像分类处理的变量),并用一定的方式将特征空间划分为互不重叠的子空间,然后将图像中各个像元划归到各个子空间去。这就是图像分类。其理论依据是:遥感图像中的同类地物在相同的条件下,应具有相同或相似的光谱和空间信息特征,从而表现出同类地物的某种内在的相似性,将集群在同一特征空间区域;而不同类的地物其光谱和空间信息特征不同,将集群在不同的特征空间区域。

在遥感图像的分类中,按照是否有已知训练样本的分类数据,分类方法可分为:监督和非监督两大类。我们所进行的卫星核查方面的研究,缺少一定的训练样本,所以一般只能采用非监督分类的方法。非监督分类方法快速简单具有一定的精度,可作为监督分类的重要补充手段。常用的处理方法有:平行六面体分类、简单均方差阈值分类、动态聚类分类,每种分类方法各有优缺点。对于遥感图像使用动态聚类方法比较理想。

2 动态聚类

动态聚类分析可通过分析像元的类似度(距离)一次完成像元的归并分类,也可以多次完成。我们的作法是先按某些原则选择一些代表点作为聚类的核心,然后把其余的待分点按某种方法(判据准则)分到各类中去,完成初始分类。初始分类完成以后,重新计算各聚类中心,把各点按初始判据重新分到各类,完成了第一次迭代。然后再修改聚类中心,再进行下一次迭代,用来对上次分类结果进行修改。如此反复进行,直到最后满意为止。动态聚类算法是一种普遍采用的方法,具有以下三个要点:

(1) 选定某种距离度量作为样本间的相似性度量。

(2) 确定某个评价聚类结果质量的准则函数。

(3) 给定某个初始分类,然后用迭代算法找出使准则函数取极值的最好聚类结果。

动态聚类方法有很多,并且还在不断地发展,各种分类方法各有优缺点,其中K-means和ISO-DATA算法是目前较为成熟的两种动态聚类方法。通过从模型上进行的分析比较发现:K-means及ISODATA算法的优点在于把分析判别的统计聚类算法和简单多光谱分类融合在一起,使聚类更准确、客观。

3 K-means算法(本实验所用的方法

K-means算法是一种较典型的逐点修改迭代的动态聚类算法,也是一种普遍采用的方法,其要点是以误差平方和为准则函数。一般的作法是先按某些原则选择一些代表点作为聚类的核心,然后把其余的待分点按某种方法(判据准则)分到各类中去,完成初始分类。初始分类完成以后,重新计算各聚类中心,完成了第一次迭代。然后修改聚类中心,以便进行下一次迭代。这种修改有两种方案,即逐点修改和逐批修改。逐点修改类中心就是一个像元样本按某一原则归属于某一组类后,就要重新计算这个组类的均值,并且以新的均值作为凝聚中心点进行下一次像元聚类。逐批修改类中心就是在全部像元样本按某一组的类中心分类之后,再计算修改各类的均值,作为下一次分类的凝聚中心点。采用了以下K-means算法:

⛄ 部分代码

clear all;   s=imread('L1.bmp'); s=double(s);  X1=20;X2=45;X3=90;  num1=0;num2=0;num3=0;[M,N]=size(s); R=zeros(M,N);     a=10;b=20;counter=0;      format long;  while(abs(b-a)>0.001)       counter=counter+1     a    b=a;     a=0;     for i=1:M     for j=1:N                 %-------------------------------------------------------            p1=(s(i,j)-X1).^2;                 p2=(s(i,j)-X2).^2;             p3=(s(i,j)-X3).^2;                   min_p=min([p1,p2,p3]);                    if (p1==min_p)                  R(i,j)=1;                        num1=num1+1;               elseif (p2==min_p)                 R(i,j)=2;                       num2=num2+1;             elseif (p3==min_p)                 R(i,j)=3;                        num3=num3+1;             end                a=a+sqrt(min_p);                             end     end            X1=X1*0;   X2=X2*0;   X3=X3*0;                                 a=a/M/N;         %---------------------------------------------------    for i=1:M     for j=1:N             if (R(i,j)==1) X1=X1+s(i,j);             elseif (R(i,j)==2) X2=X2+s(i,j);             elseif (R(i,j)==3) X3=X3+s(i,j);            end         end     end         X1=X1/num1; num1=0;         X2=X2/num2; num2=0;     X3=X3/num3; num3=0;     end   r=zeros(M,N); for  i=1:M for j=1:N                        if (R(i,j)==1)     r(i,j)=30;               elseif(R(i,j)==2)  r(i,j)=100;              elseif(R(i,j)==3)  r(i,j)=200;         end     end end  r=uint8(r); figure; imshow(r);                           imwrite(r,'r1.bmp');

⛄ 运行结果

通过K-means算法,并用matlab程序来实现,将给定了7幅遥感图像通过处理,分成水域、居民区和其他三类区域。并用RGB彩色进行标记划分,这样看起来更易识别。

上述的K-means算法是在类别数k给定的情况下进行的。当类别数未知的情况下,在使用k-均值算法时,可以假设类别数是逐步增加的。例如,k=1,k=2,k=3,,分别使用该算法。显然,准则函数是随k的增加而单调地减少的。当数据集表现为k′个很集中的聚类时, 随着从一个聚类增加到k′个聚类而迅速减少。当k再增加时,相当于将本来是较密集的类再行分开。因此Je虽有所减少,但减少的速度比较缓慢,直到k=N, 等于0。如果作一条k的曲线,其拐点对应的就是最优的聚类数。

K-means分类方法简便易行,实践表明该方法对卫星数据分类处理效果很好,在地球物理和地质探查分析中获得了成功应用。

⛄ 参考文献

[1] 陈华,陈书海,张平,严卫东. K-means算法在遥感分类中的应用. [J].红外与激光工程,2000,29.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长





相关文章
|
2月前
|
数据采集 机器学习/深度学习 算法
|
11天前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
24 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
3天前
|
传感器 算法 C语言
基于无线传感器网络的节点分簇算法matlab仿真
该程序对传感器网络进行分簇,考虑节点能量状态、拓扑位置及孤立节点等因素。相较于LEACH算法,本程序评估网络持续时间、节点死亡趋势及能量消耗。使用MATLAB 2022a版本运行,展示了节点能量管理优化及网络生命周期延长的效果。通过簇头管理和数据融合,实现了能量高效和网络可扩展性。
|
1月前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
1月前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
24天前
|
机器学习/深度学习 算法 数据挖掘
决策树算法大揭秘:Python让你秒懂分支逻辑,精准分类不再难
【9月更文挑战第12天】决策树算法作为机器学习领域的一颗明珠,凭借其直观易懂和强大的解释能力,在分类与回归任务中表现出色。相比传统统计方法,决策树通过简单的分支逻辑实现了数据的精准分类。本文将借助Python和scikit-learn库,以鸢尾花数据集为例,展示如何使用决策树进行分类,并探讨其优势与局限。通过构建一系列条件判断,决策树不仅模拟了人类决策过程,还确保了结果的可追溯性和可解释性。无论您是新手还是专家,都能轻松上手,享受机器学习的乐趣。
32 9
|
1月前
|
资源调度 算法
基于迭代扩展卡尔曼滤波算法的倒立摆控制系统matlab仿真
本课题研究基于迭代扩展卡尔曼滤波算法的倒立摆控制系统,并对比UKF、EKF、迭代UKF和迭代EKF的控制效果。倒立摆作为典型的非线性系统,适用于评估不同滤波方法的性能。UKF采用无迹变换逼近非线性函数,避免了EKF中的截断误差;EKF则通过泰勒级数展开近似非线性函数;迭代EKF和迭代UKF通过多次迭代提高状态估计精度。系统使用MATLAB 2022a进行仿真和分析,结果显示UKF和迭代UKF在非线性强的系统中表现更佳,但计算复杂度较高;EKF和迭代EKF则更适合维数较高或计算受限的场景。
|
1月前
|
算法
基于SIR模型的疫情发展趋势预测算法matlab仿真
该程序基于SIR模型预测疫情发展趋势,通过MATLAB 2022a版实现病例增长拟合分析,比较疫情防控力度。使用SIR微分方程模型拟合疫情发展过程,优化参数并求解微分方程组以预测易感者(S)、感染者(I)和移除者(R)的数量变化。![]该模型将总人群分为S、I、R三部分,通过解析或数值求解微分方程组预测疫情趋势。
|
1月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
15天前
|
算法
基于ACO蚁群优化的UAV最优巡检路线规划算法matlab仿真
该程序基于蚁群优化算法(ACO)为无人机(UAV)规划最优巡检路线,将无人机视作“蚂蚁”,巡检点作为“食物源”,目标是最小化总距离、能耗或时间。使用MATLAB 2022a版本实现,通过迭代更新信息素浓度来优化路径。算法包括初始化信息素矩阵、蚂蚁移动与信息素更新,并在满足终止条件前不断迭代,最终输出最短路径及其长度。
下一篇
无影云桌面