Giter VIP home page Giter VIP logo

nyartoolkit-for-processing's People

Contributors

crazymaster avatar nyatla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nyartoolkit-for-processing's Issues

Camera frozen

Hi,

When I run the pngMarker script, the camera seems to take the first frame and stays frozen. I am using Processing 3.0.2 with nyar4psg-2.1.0. in a Windows 8.1 64-bit. Could someone help me with the problem or give any clue. The code is below:

/**
NyARToolkit for proce55ing/1.2.0
(c)2008-2012 nyatla
airmail(at)ebony.plala.or.jp

This sample program uses a PNG image instead of the patt file.
The PNG image must be square form that includes edge.
*/

import processing.video.;
import jp.nyatla.nyar4psg.
;

Capture cam;
MultiMarker nya;

void setup() {
size(640,480,P3D);
colorMode(RGB, 100);
println(MultiMarker.VERSION);
cam = new Capture(this, 640, 480);
nya = new MultiMarker(this ,width ,height ,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
nya.addARMarker(loadImage("marker.png"),16,25,80);
cam.start();
}

void drawBackground2(PImage i_img)
{
PMatrix3D mv=new PMatrix3D();
mv.reset();
mv.translate(0,0,-nya.FRUSTUM_DEFAULT_FAR_CLIP);
PGraphicsOpenGL pgl=((PGraphicsOpenGL)g);
pgl.pushProjection();
pushMatrix();
// ortho(0,i_img.width,0,i_img.height,nya.FRUSTUM_DEFAULT_NEAR_CLIP,nya.FRUSTUM_DEFAULT_FAR_CLIP+1);//2.x
ortho(-i_img.width/2,i_img.width/2,-i_img.height/2,i_img.height/2,nya.FRUSTUM_DEFAULT_NEAR_CLIP,nya.FRUSTUM_DEFAULT_FAR_CLIP+1);//3/x
setMatrix(mv);
image(i_img,-i_img.width/2,-i_img.height/2);
popMatrix();
pgl.popProjection();
}

void draw()
{
if (cam.available() !=true) {
return;
}
cam.read();
nya.detect(cam);
background(0);
drawBackground2(cam); //new function
// nya.drawBackground(cam);//frustumを考慮した背景描画//comment out
if((!nya.isExistMarker(0))){
return;
}

nya.beginTransform(0);
fill(0,0,255);
translate(0,0,20);
box(40);
nya.endTransform();
}

不具合と思われる挙動について

ライブラリの動作を確認していて、2点ほど不具合ではないかと思う点がありました。
なお、processing 2.2.1 でサンプルコードを実行しています。

master リポジトリに、lib/NyAR4psg.jar が含まれていないようです。

以下のようなコードを実行すると、java.lang.AssertionError が発生します。

img = loadImage("photo.jpg");

nya = new MultiMarker(this, width, height, "camera_para.dat", NyAR4PsgConfig.CONFIG_PSG);
nya.addARMarker("patt.hiro", 80);
nya.detect(img);

お時間あるときにご確認いただければと思います。
よろしくお願いします。

nya.drawBackground faulty

Hey,

it seems to me as though the drawBackground method is faulty. It draws the captured image outside of the window or to be more exact: It draws the window into the lower left quarter of the screen. Marker tracking still works fine though

Processing jar missing?

Hey,

I'm probably missing something, but is the .jar for processing missing? Or does one have to build it themselves? If so, could you provide me with a short guideline?

Cheers and thanks for the amazing library
Moritz

getNyID crashes the cam

Hello ! , im trying to get wich marker has been tracked.

I supposed is with the function "getNyId" ? , but this function is crashing everytime a new marker es read by the cam.

Android Mode, can not specify "camera_para.dat" and marker files properly

Hi, i'm currently trying to get NyARToolkit-for-Processing on Android Mode and i'm running into some issues, which i think could be sorted.

Specifically, i'm having trouble when trying to initialize the MultiMarker object on this line:

nya=new MultiMarker(this,width,height, "camera_para.dat" ,NyAR4PsgConfig.CONFIG_PSG);

Apparently Android does not have a /data folder so it does not find any file. I've tried using absolute paths such as "/storage/emulated/0/Download/camera_para.dat" but that does not work either.

I've traced the error down to this (see this SO): Looks like PApplet class calls the createInput method with the filename string as a parameter, but for some reason it does not accept "separators".

public MultiMarker(PApplet i_applet, int i_width,int i_height,String i_cparam_file,NyAR4PsgConfig i_config)

{

     this(i_applet,new SingleCameraView(i_applet,   NyARParam.loadFromARParamFile(i_applet.createInput(i_cparam_file), i_width, i_height),i_config._ps_patch_version), i_config);       
     return;
}

createInput on PApplet has an overload that accepts a File object as input, so if this overload were added i think this issue would be solved (see that i_cparam_file is File object now):

public MultiMarker(PApplet i_applet, int i_width,int i_height,File i_cparam_file,NyAR4PsgConfig i_config)

{

     this(i_applet,new SingleCameraView(i_applet,   NyARParam.loadFromARParamFile(i_applet.createInput(i_cparam_file), i_width, i_height),i_config._ps_patch_version), i_config);       
     return;
}

If someone knows any way of solving this without doing this modification please let me know.

simpleNft and nftFilesGen do not work in Processing b3 and later

Hi, thanks for your great contribution!
I found bugs and wanted to let you know.

simpleNft crashes on Processing b3 and later.
There seems to be an error within addNftTarget().

NyAR4psg/3.0.7;NyARToolkit/5.0.9
Processing video library using bundled GStreamer 1.20.3
Scanning GStreamer plugins... Done.
RuntimeException: java.lang.IllegalAccessError: class jp.nyatla.nyartoolkit.j2se.JpegIO (in unnamed module @0x192b07fd) cannot access class com.sun.imageio.plugins.jpeg.JPEGImageReader (in module java.desktop) because module java.desktop does not export com.sun.imageio.plugins.jpeg to unnamed module @0x192b07fd
java.lang.RuntimeException: java.lang.IllegalAccessError: class jp.nyatla.nyartoolkit.j2se.JpegIO (in unnamed module @0x192b07fd) cannot access class com.sun.imageio.plugins.jpeg.JPEGImageReader (in module java.desktop) because module java.desktop does not export com.sun.imageio.plugins.jpeg to unnamed module @0x192b07fd
at processing.opengl.PSurfaceJOGL.lambda$initAnimator$2(PSurfaceJOGL.java:413)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalAccessError: class jp.nyatla.nyartoolkit.j2se.JpegIO (in unnamed module @0x192b07fd) cannot access class com.sun.imageio.plugins.jpeg.JPEGImageReader (in module java.desktop) because module java.desktop does not export com.sun.imageio.plugins.jpeg to unnamed module @0x192b07fd
at jp.nyatla.nyartoolkit.j2se.JpegIO.decode(JpegIO.java:55)
at jp.nyatla.nyartoolkit.core.marker.nft.iset.IsetFileDataParserV5.(IsetFileDataParserV5.java:97)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftIsetFile.loadFromIsetFile(NyARNftIsetFile.java:87)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftIsetFile.loadFromIsetFile(NyARNftIsetFile.java:67)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftIsetFile.loadFromIsetFile(NyARNftIsetFile.java:71)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftDataSet.loadFromNftFiles(NyARNftDataSet.java:115)
at jp.nyatla.nyar4psg.MultiNft.addNftTarget(Unknown Source)
at jp.nyatla.nyar4psg.MultiNft.addNftTarget(Unknown Source)
at jp.nyatla.nyar4psg.MultiNft.addNftTarget(Unknown Source)
at simpleNft.setup(simpleNft.java:42)
at processing.core.PApplet.handleDraw(PApplet.java:2088)
at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:821)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:782)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:453)
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
at java.base/java.util.TimerThread.run(Timer.java:516)
RuntimeException: java.lang.IllegalAccessError: class jp.nyatla.nyartoolkit.j2se.JpegIO (in unnamed module @0x192b07fd) cannot access class com.sun.imageio.plugins.jpeg.JPEGImageReader (in module java.desktop) because module java.desktop does not export com.sun.imageio.plugins.jpeg to unnamed module @0x192b07fd

I also found error in nftFilesGen.
It is runnable, but "Save Feature Set files" does not work.
The files are not created. The errors are as follows.

java.lang.IllegalAccessError: class jp.nyatla.nyartoolkit.j2se.JpegIO (in unnamed module @0x4560efd8) cannot access class com.sun.imageio.plugins.jpeg.JPEGImageWriter (in module java.desktop) because module java.desktop does not export com.sun.imageio.plugins.jpeg to unnamed module @0x4560efd8
at jp.nyatla.nyartoolkit.j2se.JpegIO.encode(JpegIO.java:103)
at jp.nyatla.nyartoolkit.core.marker.nft.iset.IsetFileDataParserV5.makeBinary(IsetFileDataParserV5.java:124)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftIsetFile.makeIsetBinary(NyARNftIsetFile.java:212)
at jp.nyatla.nyartoolkit.core.marker.nft.NyARNftIsetFile.makeIsetBinary(NyARNftIsetFile.java:200)
at jp.nyatla.nyartoolkit.apps.nftfilegen.NyarNftGenApp$3.actionPerformed(NyarNftGenApp.java:202)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.AbstractButton.doClick(AbstractButton.java:374)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1028)
at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1072)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
at java.desktop/java.awt.Component.processEvent(Component.java:6391)
at java.desktop/java.awt.Container.processEvent(Container.java:2266)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

I've checked in several versions.

Processing 3.5.4 : work!
Processing 4.0 beta 1 : work!
Processing 4.0 beta 2 : simpleNft works, but with NullPointerException. nftFilesGen works.
Processing 4.0 beta 3 : not work
Processing 4.0 beta 4 : not work
Processing 4.0 beta 5 : not work
Processing 4.0 : not work
Processing 4.1.1 : not work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.