matlab遥感图像分类
生活随笔
收集整理的這篇文章主要介紹了
matlab遥感图像分类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
matlab遙感圖像分類
遙感圖片的分類對于區域的分類顯得尤為重要。可以分塊顯示,對于區域的劃分顯得尤其重要!
一、參考代碼
clear all;close all;clc;%讀入圖像Image=imread('test.tif');Image=Image(2:(size(Image,1)-1),2:(size(Image,2)-1),:);Ls_Image=Linear_stretch(Image,8);%線性灰度拉伸Im=double(Image)/255;nums=size(Im,3);%波段數%讀入樣本snum=14;%樣本數cli_list=1:14;%各樣本對應初分類別號for i=1:snumeval(['sss{i}=double(imread(''s',num2str(i),'.tif''));']);%樣本文件名:si.bmp,i=1,2,3...if size(sss{i},1)<=2 || size(sss{i},1)<=2error('第%d個樣本圖太小!',i);ends{i}=sss{i}(2:(size(sss{i},1)-1),2:(size(sss{i},2)-1),:);end%初分類別各參數計算numcli=length(unique(cli_list));%初分類別數%當類標不是連續自然數時,修改為從1開始的連續自然數編號cli_sort=sort(unique(cli_list));for i=1:numcliff=find(cli_list==cli_sort(i));clilist(ff)=i;%整理好的連續自然數類別表end%ELM分類sample_s=[];label=[];for i=1:snumfor j1=1:size(s{i},1)for j2=1:size(s{i},2)endendendsample_s=double(sparse(sample_s))/255;x=sample_s;%重新編碼la_temp=label;for i=1:ceil(log(snum)/log(2))y(:,i)=mod(la_temp,2);la_temp=floor(la_temp/2);endy=sign(y-0.5);nump=size(y,1);ELM=ELM_train(y,x,300);%待分類原圖,數據變形Cmap=zeros(size(Im,1),size(Im,2));for i=1:size(Im,2)Pclass=ELM_classify(reshape(Im(:,i,:),size(Im,1),nums),ELM);for j=1:1:ceil(log(snum)/log(2))la_temp=(sign(Pclass)+1)*0.5;Cmap(:,i)=Cmap(:,i)+la_temp(:,j)*2^(j-1);endendCmap(find(Cmap>snum))=snum;Cmap(find(Cmap<1))=1;Image_cli=mat2gray(Cmap);%制作配色表for i=1:numclimap(i,1)=i;map(i,2)=floor(abs(i-0.5*numcli)*2);map(i,3)=numcli-i+1;endmap=map./max(max(map));Image_cli_c=grayslice(Image_cli,numcli);%類別合并,以下內容在初次分類完成后,給定參數%1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9clf_list=[1 1 2 2 2 2 3 3 4 5 5 5 6 6];%對初分類標進行合并,各類標對應的最終類標(連續自然數);numclf=length(unique(clf_list));for i=1:size(Cmap,1)for j=1:size(Cmap,2)Im_clf(i,j)=clf_list(Cmap(i,j));%最終分類矩陣endendfprintf('\n最終分類完成。');Image_clf=mat2gray(Im_clf);for i=1:numclfmapf(i,1)=i;mapf(i,2)=floor(abs(i-0.5*numclf)*2);mapf(i,3)=numclf-i+1;endmapf=mapf./max(max(mapf));Image_clf_c=grayslice(Image_clf,numclf);figure();imshow(Image);title('待分類原始圖像');figure();imshow(Ls_Image)title('待分類圖像(線性拉伸)');figure();imshow(Image_cli_c,map);title('初次分類結果圖');figure();imshow(Image_clf_c,mapf);title('最終分類結果圖');ill=ones(50,150);illu=ill;if(numclf>1)for i=2:numclfillu=[illu;ill*i];endendfigure();imshow(illu,mapf);ylabel(' ?6 ??????????5 ??????????4 ??????????3 ??????????2 ??????????1');title('各類顏色圖例');?二、運行參考圖
?
????
????????
????????
總結
以上是生活随笔為你收集整理的matlab遥感图像分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 通知写法_Android
- 下一篇: 使用FastDFS实现图片服务器的功能【