Skip to content

yanlobianchi/ht4m

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyperspectral Toolbox for Matlab (HT4M)

O propósito desse Toolbox é prover um conjunto de algoritmos para análise e classificação de Imagem Hiperespectral (HSI). Essa é uma iniciativa do Grupo de Pesquisa em Computação Ciêntifica da Pontifícia Universidade Católica de Goiás (PUC-GO). A primeira versão deste Toolbox (v 0.1) possui as seguinte organização:

Diretório Descrição
functions Contém os arquivos .m referente a cada uma das funções do Toolbox. A medida que novas funções forem implementadas, sugere-se categorizar as funções em subdiretórios conforme sua finalidade.
data Contém as matrizes de exemplo para experimentar os algoritmos.
app Contém um arquivo hsiAnalisys.m referente a um pequeno aplicativo para explorar uma HSI.

Instalação

Para utilizar o Toolbox, basta clicar no botão verde "Clone or Download" no canto superior direito dessa página e descompactar o arquivo em qualquer diretório em seu computador. Para executar os algoritmos é necessário ter o software Matlab instalado. Recomenda-se a versão R2014a a ou posterior.

Dados

Estão disponíveis dento do diretório data HSIs de amostras de banana para experimentação do Toolbox. Foram digitalizadas a polpa e a casca de 4 espécies de banana. Essas espécies são: nanica, marmelo, prata e maçã.

Como executar o conteúdo de exemplo

Abra o software Matlab e navege até o diretório onde você descompactou os arquivos. Execute o seguinte código:

>> config;
>> load('polpa_prata.mat');
>> load('casca_prata.mat');
>> Banana = cat(1, polpa_prata, casca_prata);
>> Y = hsiAnalysis(Banana);

Durante a execução do aplicativo, informe as opções conforme forem sendo solicitadas.

Funções

As funções disponíveis nesta implementadas até agora são:

  • hsiGetLayer: Obtém uma matriz 2D com os valores do respactivo layer informado. Sintaxe:
>>  L = hsiGetLayer(HSI, layer);
  • hsiGetImageLayer: Obtém a imagem do respactivo layer informado. Sintaxe:
>>  I = hsiGetImageLayer(HSI, layer);
  • hsiShowLayer: Exibe a imagem em escala de cinza de um respectivo layer da HSI.
>>  I = hsiShowLayer(HSI, layer);
  • hsiShowSpectrum: Exibe o espectro de um determinado pixel da HSI.
>>  hsiShowSpectrum(HSI, x, y);
  • hsiNormalize: Normaliza os dados entre 0 e 1. Sintaxe:
>>  Norm_HSI = hsiNormalize(HSI);
  • hsi2matrix: Esta função converte uma HSI em matriz 2D.
>>  X = hsi2matrix(HSI);
  • hsiRemoveBackground: Executa o agrupamento espectral em duas classes empregando os algoritmos PCA e K-Means. Essa função retorna o rótulo de cada pixel após a execução dos algoritmos. É necessário identificar qual rótulo corresponde ao cluster com espectros do fundo. Para melhor aproveitamento do uso desta função, observe sua implementação dentro do arquivo hsiAnalisys.m no diretório app.
>>  Y = hsiRemoveBackground(X);
  • getClusters: Executa o algoritmo K-Means a partir da matriz de Scores da PCA e respectivo número de pcs. O parâmetro k corresponde ao número de clusters desejado. Essa função retorna os rótulos de cada espectro 'Y', os centroids 'C', as somas dentro do cluster de distâncias ponto à centroid 'sumd' e a matriz de distâncias 'D'.
>>  [Y, C, sumd, D] = getClusters( PCAscore, pcs, k );
  • showClusterOnImage: Exibe em uma determinada imagem, os pixels referente a um determinado cluster na cor RGB escolhida. Os parâmetros de entrada são:
    • image: imagem de um respectivo layer (ver função hsiGetImageLayer),
    • idx: vetor de rótulos de classes,
    • cluster: identificador numérico referente ao cluster que se deseja exibir na imagem,
    • r, g, b: valores entre 0 e 255 referente a intensidade de vermelho, verde e azul em uma imagem colorida no padrão RGB.

Sintaxe:

>>  [ gray_image, rgb_image, fig ] = showClusterOnImage( image, idx, cluster, r, g, b);

Como contribuir com o projeto

O primeiro passo é familiarizar com o sistema de versionamento de código. Para quem não possui conhecimento sobre controle de versão usando Git, recomento o seguinte curso disponível no YouTube: Curso básico de Git e GitHub.

O segundo passo é entrar em contato com Daniel Lucena ou Arlindo Galvão por meio do grupo LAMV.

About

Hyperspectral Toolbox for Matlab

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 98.4%
  • M 1.6%