util
Class ExtratorDeMedidas

java.lang.Object
  extended by util.ExtratorDeMedidas

public class ExtratorDeMedidas
extends java.lang.Object

Classe que extrai medidas de imagens binárias


Constructor Summary
ExtratorDeMedidas()
           
 
Method Summary
static long area(boolean[][] imagem)
          Função que calcula a área (em pixels) de um objeto numa imagem binária
static long assimetria(boolean[][] imagemBinaria, double[] vetorPrimario, double[] vetorSecundario, PontoDouble centroide)
          Mede a assimetria de um objeto em relação ao eixo secundário
static PontoDouble centroide(boolean[][] imagem)
          Recebe uma imagem binária com somente o objeto de interesse e devolve o centróide dessa imagem
static double[] curvatura(double[] x, double[] y)
          Função que estima a curvatura de um objeto em cada ponto do contorno através do método do curvograma (curvegram)
static double distanciaMediaAte(PontoDouble ponto, java.util.ArrayList<PontoNatural> contorno)
          Recebe um conjunto de pontos e um ponto específico e devolve a distância (euclidiana) média entre esse ponto e todos os demais.
static double energiaDeDobramento(double[] curvatura)
          Função que calcula a energia de dobramento de um objeto, dada sua curvatura Medida que sintetiza a curvatura em um número
static java.util.ArrayList<PontoNatural> extraiContorno(boolean[][] imagem)
          Função que extrai o contorno externo de um objeto (Contour following)
static void extraiVetoresProprios(boolean[][] imagemBinaria, double[] vetorProprio1, double[] vetorProprio2)
          Calcula os vetores próprios de uma imagem binária
static double maiorDiametro(java.util.ArrayList<PontoNatural> contorno, PontoNatural umExtremo, PontoNatural outroExtremo)
          Função que calcula o valor (em pixels) da maior corda contida num objeto numa imagem binária e também os pontos extremos dessa corda Faz busca exaustiva medindo a distância entre todos os pares de pontos do contorno
static double perimetro(java.util.ArrayList<PontoNatural> contorno)
          Calcula o perímetro (em pixels) de um objeto
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExtratorDeMedidas

public ExtratorDeMedidas()
Method Detail

area

public static long area(boolean[][] imagem)
Função que calcula a área (em pixels) de um objeto numa imagem binária

Parameters:
imagem - binária
Returns:
número de posições da matriz que valem true

centroide

public static PontoDouble centroide(boolean[][] imagem)
Recebe uma imagem binária com somente o objeto de interesse e devolve o centróide dessa imagem

Parameters:
imagem - binária
Returns:
centro de massa

distanciaMediaAte

public static double distanciaMediaAte(PontoDouble ponto,
                                       java.util.ArrayList<PontoNatural> contorno)
Recebe um conjunto de pontos e um ponto específico e devolve a distância (euclidiana) média entre esse ponto e todos os demais. A intenção é calcular a distância média do contorno até o centróide

Parameters:
ponto - especial (pode ser o centro)
contorno - lista dos pontos do contorno
Returns:
A média das distância euclidianas

extraiContorno

public static java.util.ArrayList<PontoNatural> extraiContorno(boolean[][] imagem)
Função que extrai o contorno externo de um objeto (Contour following)

Parameters:
imagem - binária contendo somente o objeto de interesse
Returns:
lista de pontos que representam o contorno do objeto

curvatura

public static double[] curvatura(double[] x,
                                 double[] y)
Função que estima a curvatura de um objeto em cada ponto do contorno através do método do curvograma (curvegram)

Parameters:
x - coordenadas x dos pontos do contorno em ordem
y - coordenadas y dos pontos do contorno em ordem
Returns:
vetor com os valores de curvatura correspondentes a cada ponto do contorno

energiaDeDobramento

public static double energiaDeDobramento(double[] curvatura)
Função que calcula a energia de dobramento de um objeto, dada sua curvatura Medida que sintetiza a curvatura em um número

Parameters:
curvatura -
Returns:
soma dos quadrados da curvatura

maiorDiametro

public static double maiorDiametro(java.util.ArrayList<PontoNatural> contorno,
                                   PontoNatural umExtremo,
                                   PontoNatural outroExtremo)
Função que calcula o valor (em pixels) da maior corda contida num objeto numa imagem binária e também os pontos extremos dessa corda Faz busca exaustiva medindo a distância entre todos os pares de pontos do contorno

Parameters:
contorno - lista de pontos do contorno do objeto de interesse
umExtremo - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência)
outroExtremo - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência)
Returns:
número de pixels do maior segmento inteiramente contido no objeto

assimetria

public static long assimetria(boolean[][] imagemBinaria,
                              double[] vetorPrimario,
                              double[] vetorSecundario,
                              PontoDouble centroide)
Mede a assimetria de um objeto em relação ao eixo secundário

Parameters:
imagemBinaria - imagem binária contendo o objeto de interesse
vetorPrimario - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência). Conterá o vetor diretor do eixo principal do objeto
vetorSecundario - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência). Conterá o vetor diretor do eixo secundário do objeto
centroide - centro de massa do objeto
Returns:
subtração entre os dois lados lados do objeto, em relação ao eixo secundário

extraiVetoresProprios

public static void extraiVetoresProprios(boolean[][] imagemBinaria,
                                         double[] vetorProprio1,
                                         double[] vetorProprio2)
Calcula os vetores próprios de uma imagem binária

Parameters:
imagemBinaria -
vetorProprio1 - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência)
vetorProprio2 - deve ser inicializado antes (não pode ser null) pois é modificado (passado por referência)

perimetro

public static double perimetro(java.util.ArrayList<PontoNatural> contorno)
Calcula o perímetro (em pixels) de um objeto

Parameters:
contorno - lista de pontos representado o contorno do objeto
Returns:
medida do perímetro