matlab图像分类器,[转载]两种图像分类算法和matlab源代码
文章主要内容:第一种图像分类算法:极光作为太阳风与地球磁层相互作用产生的典型电离层踪迹,其形态和变化过程对研究空间天气活动极为重要。日侧冕状极光作为极光一种重要形态,能够反映磁正午时期太阳风和地球磁层相互作用的过程。因此,研究各类日侧冕状极光对分析空间天气活动,电离层及其动态特征具有重要意义。本文提出了一种新的基于静态极光图像分类的极光特征提取方法,利用X-GLAMs提取极光原始图像的纹理特征。结
文章主要内容:
第一种图像分类算法:
极光作为太阳风与地球磁层相互作用产生的典型电离层踪迹,其形态和变化过程对研究空间天气活动极为重要。日侧冕状极光作为极光一种重要形态,能够反映磁正午时期太阳风和地球磁层相互作用的过程。因此,研究各类日侧冕状极光对分析空间天气活动,电离层及其动态特征具有重要意义。本文提出了一种新的基于静态极光图像分类的极光特征提取方法,利用X-GLAMs提取极光原始图像的纹理特征。结合极光纹理特点,X-GLAM选取典型邻域点组成新的邻域机制。在分类阶段,利用支持向量机(SVM)学习极光纹理类别模型,然后将给定的极光纹理特征分类到之前学习的类别模型中去。实验结果显示,基于X-GLAMs特征的日侧极光图像分类算法在处理复杂的冕状极光时获得了很好的效果。针对大规模待处理的极光样本数据,本文提出了一种基于特征选择的日侧极光分类算法。为了降低噪声影响并解决特征维度过高的问题,引入ReliefF算法对X-GLAMs特征进行选择,进一步筛选出有效的特征向量。本文提出的特征选择方法在保证计算精度的前提下,一定程度上减小了实验运行速度,为大规模处理极光样本数据创造了基础。实验对X-GLAM和BGLAM两组特征集进行了特征选择前后分类的对比实验,其中所有数据都来自我国北极黄河站真实的极光数据库。实验证明了本文提出的极光分类算法的有效性。
截图演示:
第二种图像分类算法:
极化SAR能够同时获得目标区域的多通道与高分辨率数据,可更好的揭示目标的物理散射特性,因此,极化SAR图像的特征提取与目标分类在解释雷达图像和目标识别方面起着十分重要的作用。充分利用极化信息,可更加准确地理解目标散射机理,从而带来更好的SAR图像分类结果。本文根据极化SAR数据的特点,结合子孔径分析技术,进行了极化SAR图像目标分类算法的研究,主要工作如下:1.总结了目前常用的极化SAR图像分类算法及其存在的问题。在此基础上,将AdaBoost算法与极化通道所携带的信息相结合,对极化SAR图像进行监督分类,在已知场景类别数的情况下,该方法能够加快收敛速度,改善分类效果;2.研究了基于子孔径分析的极化散射机理与特征提取方法。首先从时频分解的角度对方位向子孔径进行了分析,对场景中存在的各向异性散射行为和布拉格谐振现象进行了讨论。针对场景中的非平稳目标,分析了已有的极大似然比非平稳目标检测算法,还研究了一种基于熵值与平均散射机理角的联合向量检测非平稳目标的方法。通过该方法可以对方位向频谱中的非平稳散射行为进行定位,最终消除非平稳散射在全孔径中的影响;3.对目标的极化分解方法与基于极化分解的极化SAR图像分类方法进行了研究与仿真试验。如Pauli分解、Krogager分解、H/α分类、H/A/α分类、H/α/Wishart分类、H/A/α/Wishart分类和基于Freeman-Wishart的极化SAR图像分类等。在此基础上,改进了基于AdaBoost算法的极化SAR图像分类方法,将Pauli分解与AdaBoost算法的优势得以发挥,该方法既解决了AdaBoost算法需要知道场景先验知识的缺点,同时还能改善分类效果、提高收敛速度;4.改进了基于全孔径数据的极化SAR图像分类方法,得到三种基于子孔径的极化SAR图像分类算法并进行了仿真试验:一是非平稳目标检测与H/α分类相结合的极化SAR图像分类;二是子孔径分解与H/α/Wishart迭代分类相结合的极化SAR图像分类;三是结合Freeman分解与子孔径散射特性的极化SAR图像分类。仿真试验表明,结合子孔径分析与极化分解的极化SAR图像分类,能够在一定程度上改善分类效果、增加分类精细度、提高收敛速度,在实际的SAR图像分类应用中具有很大的价值。
matlab主程序:
function
[BESTX,BESTY,ALLX,ALLY]=ImageClassify(K,N,Pm,LB,UB,D,c,m)
% 轻风论文网原创作品,转载请注明
M=length(LB);
farm=zeros(M,N);
for i=1:M
x=unifrnd(LB(i),UB(i),1,N);
farm(i,:)=x;
end
ALLX=cell(K,1);
ALLY=zeros(K,N);
BESTX=cell(K,1);
BESTY=zeros(K,1);
k=1;
while k<=K
newfarm=zeros(M,2*N);
Ser=randperm(N);
A=farm(:,Ser(1));
B=farm(:,Ser(2));
P0=unidrnd(M-1);
a=[A(1:P0,:);B((P0+1):end,:)];
b=[B(1:P0,:);A((P0+1):end,:)];
newfarm(:,2*N-1)=a;
newfarm(:,2*N)=b;
for i=1:(N-1)
A=farm(:,Ser(i));
B=farm(:,Ser(i+1));
P0=unidrnd(M-1);
a=[A(1:P0,:);B((P0+1):end,:)];
b=[B(1:P0,:);A((P0+1):end,:)];
newfarm(:,2*i-1)=a;
newfarm(:,2*i)=b;
end
FARM=[farm,newfarm];
SER=randperm(3*N);
FITNESS=zeros(1,3*N);
fitness=zeros(1,N);
for i=1:(3*N)
Beta=FARM(:,i);
FITNESS(i)=FIT(Beta,D,c,m);
end
for i=1:N
f1=FITNESS(SER(3*i-2));
f2=FITNESS(SER(3*i-1));
f3=FITNESS(SER(3*i));
if
f1<=f2&&f1<=f3
farm(:,i)=FARM(:,SER(3*i-2));
fitness(:,i)=FITNESS(:,SER(3*i-2));
elseif
f2<=f1&&f2<=f3
farm(:,i)=FARM(:,SER(3*i-1));
fitness(:,i)=FITNESS(:,SER(3*i-1));
else
farm(:,i)=FARM(:,SER(3*i));
fitness(:,i)=FITNESS(:,SER(3*i));
end
end
X=farm;
Y=fitness;
ALLX{k}=X;
ALLY(k,:)=Y;
minY=min(Y);
pos=find(Y==minY);
BESTX{k}=X(:,pos(1));
BESTY(k)=minY;
for i=1:N
if
Pm>rand&&pos(1)~=i
AA=farm(:,i);
BB=GM(AA,LB,UB);
farm(:,i)=BB;
end
end
本文出自轻风论文网http://www.xrlw888.com/post/50.html,转载请注明
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)