Tratamento de imagem

bem galera, vou direto ao ponto

tenho uma imagem, e gostaria de segmentá-la em pequenos quadros, de forma que esses quadros representassem uma matriz.

no caso, minha imagem têm somente duas cores, fundo branco e a imagem preto. É possível fazer isso?

minha ideia é pegar os requisitos (preto e branco) dessa imagem, e jogar todas as informações num arquivo .txt pra fazer o tratamento com um algorítmo de reconhecimento.

É possível sim.

Vá até o meu site e pegue os fontes do Vikanoid ou do Caça a bandeira:
http://vinigodoy.wordpress.com/meus-jogos

Lá dentro, no pacote JGF, existe uma classe chamada ImageWorker. Ela possui um método que recorta a imagem quantas linhas e colunas você quiser, já retornando a matriz das imagens recortadas.

Isso é muito útil em jogos, pois vc coloca todas as imagens da movimentação de um personagem em um único “image strip” só.

Veja como esse método funciona e adapte-o para suas necessidades.

vou dar uma olhada ViniGodoy, mais é justamente o que estou precisando, cortar as imagens, usar o JAI pra reconhecer a cor dos pedaços, e jogar num algorítmo de treinamento (Baum welch).

Ah sim, tou usando a biblioteca (JAHMM) do java para isso.

Pra situar quem esteja interessado no assunto, já fiz um programa de reconhecimento de caracteres, só que essa forma é mais interessante, e os resultados são melhores…

alguém poderia me ajudar a compilar o jogo Caça à bandeira citado acima pelo ViniGodoy.

estou usando eclipse e netbeans.

no eclipse copiei a pasta src para o projeto, só que alguns imports estão dando problema.

tentei resollver instalando o groovy, só que os problemas ainda persistem…

até configurei o path, mais não funfou… tou usando o ubuntu como S.O.

Pode me dizer que problemas?

O caça a bandeira usa o JGF. É necessário montar 2 projetos, um para o bandeira e outro para o JGF.
No bandeira, vc deve linkar o Groovy e adicionar a dependência ao JGF.

eu sei que tá meio off-topic, mais é que estou martelando nesse import groovy que não passa…

Bom, você já baixou o groovy, pegou o groovy-all.jar que está na pasta embeddable e adicionou ele como lib no seu eclipse?

O groovy vem com outros .jar que vão exigir dependências externas. O groovy-all já tem essas dependências internamente.

Qualquer coisa, posta aí como está o seu build path do eclipse para eu dar uma olhada.

desculpe a inconveniência,

já adicionei o .jar no projeto que intitulei bandeira, na pasta src do mesmo,colei as pastas bandeira e resources do fonte.

criei um outro projeto intitulado jgf e colei a pasta jgf do fonte na pasta src do mesmo.
agora, como que eu adiciono a dependência do projeto bandeira ao jgf?

É ao contrário.

Entre no projeto bandeira, clique com o botão direito.
Daí clique em build path->configure build path
Escolhe a opção project e então adicione lá a dependência ao JGF.

beleza deu tudo certo aqui, compilou a interface do jogo, escolhi o mapa que veio com o fonte, fui em jogar e escolhi o script do jogo…

o único problema é que não tou conseguindo carregar o script …

Colocou os jars do groovy no classpath?

variáveis de ambiente:

JAVA_HOME=/usr/lib/jvm/java-6-sun
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH

GROOVY_HOME=/usr/share/groovy
PATH1=$PATH1:GROOVY_HOME/bin
GROOVYJAR=.:$GROOVY_HOME/embeddable/groovy-all-1.5.6.jar

export JAVA_HOME CLASSPATH PATH GROOVY_HOME PATH1 GROOVYJAR

acho que quanto a isso tá tudo certo…

quando eu escolho Player1Start.groovy e Player2Start.groovy, dá a seguinte mensagem

“/home/diego/workspace/bandeira/ . \scripts\general.groovy (/home/diego/workspace/bandeira/ . \scripts\general.groovy)”

java.lang.IllegalArgumentException: /home/diego/workspace/bandeira/.\scripts\general.groovy (/home/diego/workspace/bandeira/.\scripts\general.groovy)
	at bandeira.gui.Main.loadPieces(Main.java:172)
	at bandeira.gui.Main.<init>(Main.java:69)
	at bandeira.gui.MapEditor.onPlay(MapEditor.java:702)
	at bandeira.gui.MapEditor.access$8(MapEditor.java:684)
	at bandeira.gui.MapEditor$10.actionPerformed(MapEditor.java:677)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1261)
	at java.awt.Component.processMouseEvent(Component.java:6041)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5806)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4413)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4243)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2440)
	at java.awt.Component.dispatchEvent(Component.java:4243)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.io.FileNotFoundException: /home/diego/workspace/bandeira/.\scripts\general.groovy (/home/diego/workspace/bandeira/.\scripts\general.groovy)
	at groovy.lang.GroovyCodeSource.<init>(GroovyCodeSource.java:92)
	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:188)
	at bandeira.gui.Main.createGeneral(Main.java:223)
	at bandeira.gui.Main.loadPieces(Main.java:145)
	... 31 more