Dúvida: Transformação Linear - Escala

2 respostas
gustavofernandes

Alguém pode me dizer, o que foi que esse cara fez(arquivo em anexo)? Eu sei que ele desenhou uma letra no jpanel, varreu a matriz e armazenou o resultado em uma matriz menor. Mas eu preciso saber justamente como ele fez essa “redução”.
Isso é uma transformaçãp de escala? Se for, tem algum método no java ou tenho que fazer na mão?
É para um OCR que estou fazendo, ou seja, vamos pegar o exemplo dessa letra A: Se o cara desenha uma letra A que ocupa boa parte do jpanel ou uma letrinha A que ocupa uma pequena parte, eu preciso varrer a matriz maior(do jpanel) e armazenar em uma menor mantendo a forma aproximada da letra(pois é essa matriz menor que vou passar como entrada para a RNA - mas isso é outro assunto :smiley: ). Enfim, se alguém souber me afirmar o que ele fez, vai me ajudar muito.
Valeu!!

2 Respostas

ViniGodoy

Aparentemente ele gerou uma imagem da seguinte maneira:

a) Descartou da imagem original todas as linhas e colunas inteiramente brancas (cropping);

b) Dividiu a imagem resultante em 6 linhas e 9 colunas;

c) Criou uma matriz 6x9 (que pode ser uma imagem binária);

d) Marcou de true (preto) caso o quadrante da imagem obtida em b contivesse pelo menos 1 pixel preto, e false, caso o quadrante estivesse vazio.

Não creio que haja um método de fazer isso automaticamente no Java.
Mas me parece ser bem simples de fazer manualmente (esse roadmap pode te ajudar).

Creio que usar um algorítmo de escala simples, baseado em transformações afins, acabaria destruindo a maior parte da informação, já que as linhas originais são muito finas.

O método tem muita imprecisão, mas provavelmente sua RNA, se bem treinada, saberá lidar com isso.

gustavofernandes

Valeu cara!! Vou olhar agora!!
E assim que resolver compartilho a solução!

Criado 25 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 2
Participantes 2