Pensando como o Software: Classificação Supervisionada Método da Distância Mínima da Média – MATLAB

Realização da Classificação Supervisionada de uma imagem multiespectral referente a uma região bem conhecida a priori, dispõe-se de um conjunto de dados de treinamento para três classes de informação, onde cada pixel é caracterizado em apenas duas componentes espectrais: B1 e B2.
Este exercício foi proposto por Elaine Costa, Professora de Processamento Digital de Imagens do IFG
Resolvendo o exercício no MATLAB
por: Amarildo Junior
%Classificação Supervisionada
%Metodo: Distancia Minima da Media
clear
clc
%CLASSE 1
C1B1=(16+18+20+11+17+18+14+10+4+7)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C1B2=(13+13+13+12+12+11+11+10+9+9)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
%CLASSE 2
C2B1=(8+9+6+8+5+7+4+6+4+3)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C2B2=(8+7+7+6+5+5+4+3+2+2)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
%CLASSE 3
C3B1=(19+19+17+17+16+14+13+13+11+11)/(10); %MEDIA DAS AMOSTRAS DA BANDA 1
C3B2=(6+3+8+1+4+5+8+1+6+3)/(10); %MEDIA DAS AMOSTRAS DA BANDA 2
M1=[C1B1;C1B2]
M2=[C2B1;C2B2]
M3=[C3B1;C3B2]
%Pixels:
X1=[5;9];
X2=[9;8];
X3=[15;9];
clc
fprintf(‘Calculo para o Primeiro Pixel’);
GM1=2*X1’*M1-M1’*M1
GM2=2*X1’*M2-M2’*M2
GM3=2*X1’*M3-M3’*M3
if GM1>GM2 & GM1>GM3
    fprintf(‘O pixel X1 pertence a Classe 1 \n’);
elseif GM2>GM1 & GM2>GM3
    fprintf(‘O pixel X1 pertence a Classe 2 \n’);
elseif GM3>GM1 & GM3>GM2
    fprintf(‘O pixel X1 pertence a Classe 3 \n’);
end
fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);
fprintf(‘Calculo para o Segundo Pixel’);
GM12=2*X2’*M1-M1’*M1
GM22=2*X2’*M2-M2’*M2
GM32=2*X2’*M3-M3’*M3
if GM12>GM22 & GM12>GM32
    fprintf(‘O pixel X2 pertence a Classe 1 \n’);
elseif GM22>GM12 & GM22>GM32
    fprintf(‘O pixel X2 pertence a Classe 2 \n’);
elseif GM32>GM12 & GM32>GM22
    fprintf(‘O pixel X2 pertence a Classe 3 \n’);
end
fprintf(‘\n’);
fprintf(‘—————————————————\n’);
fprintf(‘\n’);
fprintf(‘Calculo para o Terceiro Pixel’);
GM13=2*X3’*M1-M1’*M1
GM23=2*X3’*M2-M2’*M2
GM33=2*X3’*M3-M3’*M3
if GM13>GM23 & GM13>GM33
    fprintf(‘O pixel X3 pertence a Classe 1 \n’);
elseif GM23>GM13 & GM23>GM33
    fprintf(‘O pixel X3 pertence a Classe 2 \n’);
elseif GM33>GM13 & GM33>GM23
    fprintf(‘O pixel X3 pertence a Classe 3 \n’);
end
RESULTADO:
Calculo para o Primeiro Pixel
GM1 =
   28.4600
GM2 =
   88.1900
GM3 =
  -14.2500
O pixel X1 pertence a Classe 2
—————————————————
Calculo para o Segundo Pixel
GM12 =
  113.8600
GM22 =
  126.3900
GM32 =
   96.7500
O pixel X2 pertence a Classe 2 
—————————————————
Calculo para o Terceiro Pixel
GM13 =
  298.4600
GM23 =
  208.1900
GM33 =
  285.7500
O pixel X3 pertence a Classe 1
>>
Anúncios

2 Respostas

  1. Muito interessante a proposição da professora de apresentar o matlab para vocês no intuito da criação de resultados… Vocês estão tendo disciplinas de Álgebra Linear? Ela também dá um suporte bom para cálculos de matrizes.
    Seria legal se você colocasse o resultado visual da aplicação e até mesmo uma comparação com classificações semelhantes já implementadas em softwares de PDI.

    Parabéns! Esse blog esta cada vez melhor!

    28/03/2012 às 4:31 PM

    • Sadeckgeo a iniciativa de resolver este exercício no MATLAB foi minha, a professora apenas passou o exercício para resolver “na mão” , estou começando a trabalhar com o MATLAB agora, tivemos Álgebra Linear no Segundo Período, no momento estou concluindo o curso e à procura de alguns softwares para trabalhar e o MATLAB é um deles. Em breve estarei postando mais tutoriais sobre o MATLAB relacionado com Geoprocessamento.
      Obrigado pela visita e pelo elogio.

      28/03/2012 às 7:04 PM

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s