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

本文涉及的产品
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,分割抠图1万点
简介: 【图像分割】基于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.元胞自动机交通流 人群疏散 病毒扩散 晶体生长





目录
打赏
0
0
0
0
835
分享
相关文章
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
142 70
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
基于遗传优化算法的风力机位置布局matlab仿真
本项目基于遗传优化算法(GA)进行风力机位置布局的MATLAB仿真,旨在最大化风场发电效率。使用MATLAB2022A版本运行,核心代码通过迭代选择、交叉、变异等操作优化风力机布局。输出包括优化收敛曲线和最佳布局图。遗传算法模拟生物进化机制,通过初始化、选择、交叉、变异和精英保留等步骤,在复杂约束条件下找到最优布局方案,提升风场整体能源产出效率。
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
151 68
基于包围盒的机械臂防碰撞算法matlab仿真
基于包围盒的机械臂防碰撞算法通过构建包围盒来近似表示机械臂及其环境中各实体的空间占用,检测包围盒是否相交以预判并规避潜在碰撞风险。该算法适用于复杂结构对象,通过细分目标对象并逐级检测,确保操作安全。系统采用MATLAB2022a开发,仿真结果显示其有效性。此技术广泛应用于机器人运动规划与控制领域,确保机器人在复杂环境中的安全作业。
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
基于GA遗传算法的多机无源定位系统GDOP优化matlab仿真
本项目基于遗传算法(GA)优化多机无源定位系统的GDOP,使用MATLAB2022A进行仿真。通过遗传算法的选择、交叉和变异操作,迭代优化传感器配置,最小化GDOP值,提高定位精度。仿真输出包括GDOP优化结果、遗传算法收敛曲线及三维空间坐标点分布图。核心程序实现了染色体编码、适应度评估、遗传操作等关键步骤,最终展示优化后的传感器布局及其性能。
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
35 15
目录
目录