Olá, eu estou com um problema de execução.
Estou fazendo um aplicativo em que o usuario desenha uma letra na tela e o computador identifica qual letra a pessoa esta desenhando, igual esses aplicativos de auxilio ortografico que veem nos celulares.
Porem estou com problemas para saber como calcular o que a pessoa desenha e identificar. Vou postar o código e me ajudem.
[code]public float carregaPorcentagem(BufferedImage arquivoA, String arquivoB) {
float porcentagem = 0;
int acertosTeste = 0;
int errosTeste = 0;
int somaPixel = 0;
int somadorBrancoTeste=0;
int somadorPretoTeste=0;
int somadorBrancoBase = 0;
int somadorPretoBase = 0;
try {
BufferedImage bufi = arquivoA;// ImageIO.read( getClass().getResource( "/a.png" ) );
BufferedImage bufi2 = MC_Imagem.getInstance().loadImage(arquivoB);
Color corBase = null;
Color corTeste = null;
Color branca = new Color(255, 255, 255);
Color preta = new Color(0, 0, 0);
for (int i = 0; i < bufi.getHeight(); i++) {
for (int j = 0; j < bufi.getWidth(); j++) {
somaPixel++;
corBase = new Color(bufi.getRGB(i, j));
corTeste = new Color(bufi2.getRGB(i, j));
if (corBase.getRGB() == branca.getRGB()) {
somadorBrancoBase++;
} else {
somadorPretoBase++;
}
if (corTeste.getRGB() == preta.getRGB()) {
somadorBrancoTeste++;
} else {
somadorPretoTeste++;
}
if (bufi.getRGB(i, j) == bufi2.getRGB(i, j)) {
acertosTeste++;
} else {
errosTeste++;
}
//System.out.print( c + " " );
}
//System.out.println();
}
porcentagem = somaPixel ;
System.out.println("Letra: " + arquivoB);
System.out.println("Soma: " + somaPixel);
System.out.println("Somador branco Origem: " + somadorBrancoBase);
System.out.println("Somador preto Origem: " + somadorPretoBase);
System.out.println("Somador branco Teste: " + somadorBrancoTeste);
System.out.println("Somador preto Teste: " + somadorPretoTeste);
System.out.println("Acertos Pretos: " + acertosTeste);
System.out.println("Erros: " + errosTeste);
} catch (IOException exc) {
exc.printStackTrace();
}
return porcentagem;
}[/code]
É nessa parte aqui que estou precisando de ajuda:
porcentagem = somaPixel;
Eu tenho um banco de Letras um png, preta e branca, com 26 letras. E é feito um loop para verificar qual a porcentagem tem o desenho com cada letra, ou seja, o quanto o desenho se parece com a letra. Eu sei que é por aqui que devo mexer, mas estou fraco na matematica e fiz uns testes, vi que algumas letras atrapalhavam, como a letra W, que ocupa quase toda a imagem, a letra A com a letra R, são parecidas, entre outras.
Alguém pode me dar uma idéia de como poderia por exemplo calcular a porcentagem e como distinguir porcentagens muito próximas, por exemplo entre a letra A e R e o W que atrapalha mais que tem função? eu estou meio travado nos calculos. Está faltando alguma coisa, fiz tudo errado?
Obrigado.