util
Class PreProcessador

java.lang.Object
  extended by util.PreProcessador

public class PreProcessador
extends java.lang.Object

Classe que executa procedimentos de pré-processamento de imagens, como binarização e correções Sempre usando a 4-vizinhança (vizinhança em cruz)

See Also:
Controlador

Constructor Summary
PreProcessador()
           
 
Method Summary
static boolean[][] limiariza(int limite, java.awt.image.BufferedImage original, int banda)
          Binarização através de limiarização (também conhecida como Thresholding) em uma das bandas
static boolean[][] retiraComponentesComAreaMenorQue(int menorAreaPermitida, boolean[][] imagem)
          Retira qquer componente da imagem com área (em pixels) estritamente menor do que a menorAreaPermitida.
static boolean[][] retiraPrimeiraComponente(boolean[][] binarizada)
          Retira a primeira componente conexa que encontra percorrendo a imagem binária da esq para a direita, de cima para baixo
static long[][] rotulaComponentesComSuasAreas(boolean[][] imagem)
          Define as componentes conexas de uma imagem binária e as rotula com o tamanho de suas áreas
static long segundoMaiorRotulo(long[][] componentesConexas)
          Percorre a matriz com componentes conexas e devolve o segundo maior rótulo
static boolean[][] tampaBuracos(boolean[][] imagem)
          Recebe uma imagem binária e preenche todas as casas que têm true em algum lugar à esquerda, à direita, acima e abaixo.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PreProcessador

public PreProcessador()
Method Detail

limiariza

public static boolean[][] limiariza(int limite,
                                    java.awt.image.BufferedImage original,
                                    int banda)
Binarização através de limiarização (também conhecida como Thresholding) em uma das bandas

Parameters:
limite - limiar entre 0 e 255
original - imagem RGB de entrada
banda - banda RGB sobre a qual executar a limiarização
Returns:
devolve uma matriz booleana representando a imagem binária resultante da limiarização

tampaBuracos

public static boolean[][] tampaBuracos(boolean[][] imagem)
Recebe uma imagem binária e preenche todas as casas que têm true em algum lugar à esquerda, à direita, acima e abaixo. Usada para corrigir a binarização (supomos que o objeto de interesse não é vazado)

Parameters:
imagem - matriz booleana representando a imagem binária
Returns:
a própria matriz com buracos preenchidos

retiraComponentesComAreaMenorQue

public static boolean[][] retiraComponentesComAreaMenorQue(int menorAreaPermitida,
                                                           boolean[][] imagem)
Retira qquer componente da imagem com área (em pixels) estritamente menor do que a menorAreaPermitida. Por componente entende-se grupo de posições vizinhas (usando a 4-vizinhança) todas valendo true

Parameters:
menorAreaPermitida - valor mínimo de área permitido
imagem - matriz booleana que será modificada
Returns:
devolve a própria imagem com apenas as componentes conexas com área (em pixels) maior do que menorAreaPermitida

rotulaComponentesComSuasAreas

public static long[][] rotulaComponentesComSuasAreas(boolean[][] imagem)
Define as componentes conexas de uma imagem binária e as rotula com o tamanho de suas áreas

Parameters:
imagem - binária
Returns:
matriz de long com 0 nas posições que valiam false na imagem passada como parâmetro e o valor da área da componente a qual pertence nas demais posições

segundoMaiorRotulo

public static long segundoMaiorRotulo(long[][] componentesConexas)
Percorre a matriz com componentes conexas e devolve o segundo maior rótulo

Parameters:
componentesConexas -
Returns:

retiraPrimeiraComponente

public static boolean[][] retiraPrimeiraComponente(boolean[][] binarizada)
Retira a primeira componente conexa que encontra percorrendo a imagem binária da esq para a direita, de cima para baixo