[youtube=http://www.youtube.com/watch?v=fdszoI6T1kk]

Jmyron es una librería muy usada para motiontracking pero es a la vez empleada para hacer realidad aumentada en Simpleartoolkit.

Simpleartoolkit fue desarrollada por Bryan Chung y es una librería extremadamente fácil para hacer realidad aumentada.  Pero al ser muy fácil su uso pierde algunas características vitales para su mejor desempeño.

Cuando tuve problemas con quicktime y su derivados, busqué una alternativa para solucionar mi problema. Entre ellas estaba Gsvideo (No pude ni siquiera darle play) y Jmyron.

Como ustedes sabran el casi el 100 % de mis ejemplos son con Nyartoolkit, así que decidí juntar Jmyron y Nyartoolkit para los que tienen problemas con Windvig y así se olviden por siempre (o por un buen tiempo) de instalar Quicktime y demás.

  • Importemos librerías: Como vemos Jmyron a la cabeza hace la función de Capture cam.*; El resto de importaciones son el conocido OpenGl y Nyartoolkit.

import JMyron.*;
import processing.opengl.*;
import jp.nyatla.nyar4psg.*;
import javax.media.opengl.*;

  • Llamemos a las variables: Lo único raro que podemos notar aquí es haber llamado Pimage. Se podría decir que Jmyron necesita convertir la imagen de la cámara para poder hacer efectos de realidad aumentada.

JMyron m;
NyARBoard nya;
PImage img;

  • Escribimos todo lo referente a void setup  y void draw como tamaño, variables del marcador y llamadas a Jmyron.

void setup(){
size(320,240,OPENGL);//tamaños de la pantalla
frameRate(90);// para mejorar la velocidad de la imagen por cuadro
m = new JMyron();// llamando a Jmyron
m.start(width,height);// comienza a capturar la imagen
img = createImage(width, height, ARGB);
//crear imagen con las propiedades de ancho y alto y ARG( RGB + Canal Alfa)
nya=new NyARBoard(this,width,height,”camera_para.dat”,”patt.hiro”,80);
// se ingresan las variables de Nyartoolkit
nya.gsThreshold=120;
nya.cfThreshold=0.4;

void draw(){

m.update();//update la cámara
m.imageCopy(img.pixels);
img.updatePixels();

hint(DISABLE_DEPTH_TEST); // variables de Nayrtoolkit
image(img,0,0,width,height);
hint(ENABLE_DEPTH_TEST);

if(nya.detect(img)) { // detectar la imagen con respecto al marcador

PGraphicsOpenGL pgl = (PGraphicsOpenGL) g;

nya.beginTransform(pgl);

  • Agregamos el gráfico deseado.

stroke(255,200,0);
translate(0,0,20);
box(40);

  • Y cerramos finalmente.

nya.endTransform();
}

}

  • Puedo darme cuenta que en la sensibilidad y el seguimiento del marcador, Jmyron, parece que presenta un mejor desempeño.
  • Pero en cuestión de resolución de pantalla parece tener algunas dificultades, pues al tratar incrementara el alto y ancho ocurre un error.
  • La resolución ideal es 320 x 240

19 COMMENTS

  1. hola desde ya me es muy util tus post soy argentina y artista recien me estoy metiendo en lo multimedia art, quiero usar la libreria sonia (acepto sugerencias si hay otra mejor_) lo que quiero hacer es que un objecto cuando se acerque alguien a el (por detencci{on de movimiento creo)reproduzca al azar sonidos que haya cargados en el data. me principal conflicto es que no se como crear una matriz con sonidos y despues reproducirlos al azar
    desde ya muchas gracias
    paola

    • Hola Paola como estas. Bueno te puedo comentar que Sonia es una librería desactualizada. Yo te recomendaría que uses Minim y Krister Ess.
      Ahora lo que tu propones si es factible con jmyron. Aunque tengo cierta idea como se peude hacer, no te podría decir cómo porque no lo he hecho aún.

      Pero en estos días voy a intentarlo.

      Saludos!

    • Hola Emilio, trate de hacer tu ejemplo importe la libreria JMyron, pero al ejecutar me dice el error:
      no JMyron in java.library.path

      como puedo solucionarlo porfa…

      GRACIAS!!!

      • Hola Jesus. Ese problema se debe que tu sketch no tiene el Jmyron.dll está en la carpeta de Libraries y puedes arrastrarlo para pegarlo a tu trabajo y listo!

        Saludos!

  2. gracias dale se me esta re complicando cualquier ayuda me sirve de nuevo gracias por tu aaporte me pongo a investiar tus sugerencias en librerias

  3. Tengo un problema con la libreria jMyron, cada vez que intento ejecutar un ejemplo que utilice las libreria .jar me gerera un pantalla azul (error de windows xp) y se me reinicia el computador, tengo instalado el una webcam logitech. He probrado con el software Atomic y me funciona bien los marcadores y los objetos 3d para RA. He probado muchos otros ejemplos con las librerias en processing 1.2 y todo bien, el unico inconveniente me lo genera es con jMyron. A ver si me puedes recomendar algo.

    • Hola Copernico. Pues te puedo decir que jmyron tiene esos incomvenientes, pero te puedo decir que uses la libreria de video que tiene processing. Sin lugar a dudas va a funcionar. Busca en otros tituriales dentro de mi blog y encontraras que no uso jmyron porque a mi se me complica en otro aspecto.

      Asi que sin problemas puede hacer realidad aumentada.
      Si tienes otra pregunta. Ten la confianza de decirmelo, que te responderé lo más rápido posible 🙂

      Saludos! 🙂

  4. Como estas emilio soy nuevo en esto de la realidad aumentada o mejor dicho hasta ahora no he hecho nada propio anteriormente estaba estudiando el artoolkit hasta que ya no me funciono mas y hora me encuentro con tu blog y con todos los tutoriales que has posteado.
    He seguido el de procesing junto con nyartoolkit pero no me funciono con el video de procesing no me detecta la camara, segun el post que colocaste vi que se debia instalar un complemento de quicktime pero por mas que instale todas las versiones que habia en la pagina ninguno logro hacerme funcionar la camara correctamente. Entonces encontre este post que or lo menos me deja ver el cubo.
    bueno en fin, viendo el codigo veo que las tres lineas que dicen:

    stroke(255,200,0);
    translate(0,0,20);
    box(40);

    es el codigo que pinta el cubo, pero eso es opengl ?( te advierto que no se nada de opengl) si es asi porque si coloco este codigo:

    glBegin(GL_TRIANGLES);
    glVertex3f( 0.0f, 1.0f, 0.0f); glVertex3f(-1.0f,-1.0f, 0.0f);
    glVertex3f( 1.0f,-1.0f, 0.0f);
    glEnd();

    saca error?

    y si no es opengl entonces de donde saco las estructuras para hacer mis propias imagenes?

    y por ultimo si quisiera introducir una imagen hecha ya sea en blender o en 3dmax que debo utilizar?

    De antemano te agradezco tu colaboracion debido a que me encuentro realizando un proyecto de grado y estamos buscando como construir una aplicacion para mostrar la realidad aumentada.

  5. Seria genial si lo lograses sacar antes, por lo pronto si me puedes decir en que parte es que carga las imágenes como para ir yo viendo algo.

    Según los ejemplos del Nyartoolkit supongo que lo realiza con el método draw pero cuando le digo que me lleve a la definición para ver como esta construido no me deja ver sino la declaración del método en la interface pero no me lleva en si al método, como esta construido.

  6. Hola, es mi primer acercamiento a realildas aumentada asi que tal vez sea una pregunta tonta pero al compilar me sale

    “The method begin Transform(PGraphics3D) in the type SingleMarkerBase class is not aplicable for the arguments (PGraphicsOpenGL)”

  7. Hola, soy completamente novato en el tema de realidad aumentada, asi que puede ser un pregunta tonta. Al compilar el programa me dice que el metodo beginTransform(PGraphics3D) en el tipo SingleMarkerBaseClass no es aplicable para los argumentos (PGraphicsOpenGL). ¿Qué estaré haciendo mal?

    Tambien te queria comentar que me parece muy bueno el blog y q estaría interesado en que me des un curso online. Mi correo es otrogermen@hotmail.com, ahi podemos hablar en detalle los costos y los contenidos de este.

    • Hola Juan. No es una pregunta tonta. Nadie ha nacido con conocimientos jeje. Lo que quiero saber es que versión de windows tienes?

  8. Que no pude configurar la webcam para usar las librerias video (la q incluye processing) ni OpenCV, por lo tanto debí recurrir a JMyron. Incluso revisé el post q tienes al respecto y tampoco me funcionó lo q a ti te funcionó. Por otro lado, probé el ejemplo básico con NyARToolkit de este blog (http://diariowm.wordpress.com/2010/04/13/tutorial-realidad-aumentada-processing/) en un MacBook Pro y me salió un error en la función NyARBoard (tuve en en cuenta las comillas y agregar el try – catch necesario para MAc), asi q estoy igual q antes, en cero.

    Bueno, si se te ocurre algo cuentame. De igual manera hazme el favor de enviarme al correo la información q te pedí en el mensaje de respuesta, es muy importante pues veo q comenzar en realidad aumentada no es sencillo y estoy contra el tiempo, asi que necesito tomar una decisión rapidamente. Gracias.

  9. cuando lo uso en linux funciona bien con la liberia gsvideo para captura video pero en windows no me corre el nativo , solo aparece el scketch de processing con un monton de tallitas verdes atravezadas como si le faltara alguna libreria ojala me sirva este codigo

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.