NyARToolKit - besoin d'aide
Syri
Messages postés
160
Date d'inscription
Statut
Membre
Dernière intervention
-
Syri Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
Syri Messages postés 160 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai pour objectif de réaliser ceci en Java :
Afficher à l'écran 5 images fixes, et analyser le flux capturé par la webcam en continu.
En réel, j'aurai 5 sceaux distincts, et j'en montrerai un à la webcam.
Ensuite, à l'écran, l'image correspondant au sceau que j'ai montré sera mise en avant.
Lorsque je ne montre plus le sceau, l'image revient à sa place, et on continue en boucle jusqu'à fermeture de l'application.
Pour ce faire, je me suis orienté sur ARToolKit, mais la seule version Java que j'ai trouvé est NyARToolKit.
Souci, la plupart de la documentation est en japonais.
Du coup, je me suis appuyé sur des tutos que j'ai trouvé, mais qui datent un peu et ne sont plus trop à jour :
http://fivedots.coe.psu.ac.th/~ad/jg/ch165/augReality.pdf
http://sixwish.jp/Nyartoolkit/Java/section01.en/
Je développe sous Eclipse.
J'ai tenté d'adapter le deuxième tuto avec des versions plus récentes, mais au final, je n'arrive même pas à faire fonctionner la démo, je me retrouve à la fin avec ces erreurs :
Si quelqu'un pouvait m'aider à faire fonctionner ça dans un premier temps, puis m'aider à adapter le code à mes besoins dans un second temps, ce serait super.
Merci d'avance.
j'ai pour objectif de réaliser ceci en Java :
Afficher à l'écran 5 images fixes, et analyser le flux capturé par la webcam en continu.
En réel, j'aurai 5 sceaux distincts, et j'en montrerai un à la webcam.
Ensuite, à l'écran, l'image correspondant au sceau que j'ai montré sera mise en avant.
Lorsque je ne montre plus le sceau, l'image revient à sa place, et on continue en boucle jusqu'à fermeture de l'application.
Pour ce faire, je me suis orienté sur ARToolKit, mais la seule version Java que j'ai trouvé est NyARToolKit.
Souci, la plupart de la documentation est en japonais.
Du coup, je me suis appuyé sur des tutos que j'ai trouvé, mais qui datent un peu et ne sont plus trop à jour :
http://fivedots.coe.psu.ac.th/~ad/jg/ch165/augReality.pdf
http://sixwish.jp/Nyartoolkit/Java/section01.en/
Je développe sous Eclipse.
J'ai tenté d'adapter le deuxième tuto avec des versions plus récentes, mais au final, je n'arrive même pas à faire fonctionner la démo, je me retrouve à la fin avec ces erreurs :
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt(Unknown Source) at jp.nyatla.nyartoolkit.jmf.utils.JmfCaptureDeviceList.getDevice(JmfCaptureDeviceList.java:81) at jp.nyatla.nyartoolkit.jogl.sample.sketch.SimpleLite.setup(SimpleLite.java:50) at jp.nyatla.nyartoolkit.jogl.sketch.GlSketch.init(GlSketch.java:74) at com.sun.opengl.impl.GLDrawableHelper.init(GLDrawableHelper.java:72) at javax.media.opengl.GLCanvas$InitAction.run(GLCanvas.java:418) at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:189) at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412) at javax.media.opengl.GLCanvas.display(GLCanvas.java:244) at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277) at sun.awt.RepaintArea.paintComponent(Unknown Source) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Si quelqu'un pouvait m'aider à faire fonctionner ça dans un premier temps, puis m'aider à adapter le code à mes besoins dans un second temps, ce serait super.
Merci d'avance.
4 réponses
J'avoue ne m'être jamais intéressé à ma webcam, mais pourquoi te tourner vers cette obscure bibliothèque japonaise, alors que le traitement de flux vidéos est géré par la JMF ?
Je ne dis pas que ce framework est miraculeux, mais au moins il a l'avantage d'être connu, documenté et en anglais (c'est mieux que le japonais). Quelques liens :
Java Media Framework API
→ Download
→ Documentation / API Specification / Code Samples and Apps
→ FAQs / Oracle Discussion Forums
Je ne dis pas que ce framework est miraculeux, mais au moins il a l'avantage d'être connu, documenté et en anglais (c'est mieux que le japonais). Quelques liens :
Java Media Framework API
→ Download
→ Documentation / API Specification / Code Samples and Apps
→ FAQs / Oracle Discussion Forums
JMF est utilisé dans NyARToolKit.
En fait, si j'ai bien compris, JMF sert simplement à capturer la vidéo depuis la webcam.
NyARToolKit exploite cette vidéo afin de l'analyser, et d'y reconnaître certaines formes prédéfinie. (Réalité Augmentée)
Si je n'utilise que JMF, il faudrait que je développe moi même mes propres fonctions de Réalité Augmentée, et je suis loin d'avoir le niveau.
Sinon il y aurait peut-être jARToolKit, un autre ARToolKit pour Java, mais je n'ai trouvé quasi aucune doc dessus, et le peu que j'ai trouvé, je n'ai rien réussi à en faire.
En fait, si j'ai bien compris, JMF sert simplement à capturer la vidéo depuis la webcam.
NyARToolKit exploite cette vidéo afin de l'analyser, et d'y reconnaître certaines formes prédéfinie. (Réalité Augmentée)
Si je n'utilise que JMF, il faudrait que je développe moi même mes propres fonctions de Réalité Augmentée, et je suis loin d'avoir le niveau.
Sinon il y aurait peut-être jARToolKit, un autre ARToolKit pour Java, mais je n'ai trouvé quasi aucune doc dessus, et le peu que j'ai trouvé, je n'ai rien réussi à en faire.
Dans le fichier zip de jARToolKit (https://sourceforge.net/projects/jartoolkit/) il y a plusieurs exemples de démonstration, ça semble assez simple (le code est court) mais il faudrait tout installer pour tester, et perso j'ai pas le courage ^^