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