Blog del curso electivo Seminario de Investigación Multimedia de Ingeniería de Sistemas de la Institución Universitaria Antonio José Camacho, orientado por el profesor Ing. Diego López, Mg.

Aquí están publicados los resúmenes y reflexiones de algunos de los trabajos realizados por los estudiantes del curso.

27 de mayo de 2015

Sobre el Examen Final

El Examen Final del curso Seminario de Investigación Multimedia se divide en dos partes: 1) Exposición del capítulo de Homovideoludens y 2) Artículo o Ensayo sobre el videojuego que hiciste como proyecto en el curso. Ambas notas se promedian.

El objeto del ensayo es tu videojuego; pero la forma de abordar este ensayo o su enfoque es "libre". Por ejemplo, podrías escribir un análisis sobre el uso del color en tu juego, o una reflexión sobre la importancia del tema central del cual trata tu videojuego, o un análisis sobre el proceso de desarrollo o sobre el trabajo en equipo.

La escritura de este ensayo es individual y debe ser publicado en este blog a más tardar el 8 de junio del 2015.

En la calificación del ensayo se tomará en cuenta:

  • (20%) Ortografía y redacción
  • (60%) Calidad del análisis 
  • (20%) Diseño de la publicación en el blog


20 de mayo de 2015

Desarrollos en Kinect

Probador de ropa


Visualización de imágenes durante procedimientos médicos


Visión de robot volador autónomo


Monitoreo y evaluación de pacientes con Parkinson


Evaluación del comportamiento de compra de los clientes


Fisioterapia - esclerosis múltiple


Interfaz RV para explorar e interactuar con equipo virtual


Simulación de un sable de luz


Simulación de telepresencia


Herramienta de presentación de noticias


Captura de movimiento


Convirtiendo una pared en una pantalla táctil


Espacios interiores aumentados


Ayuda en parqueo


14 de mayo de 2015

KINECT


import SimpleOpenNI.*;

SimpleOpenNI miKinect;

PImage imagenPro;

int [] usuarioId; // int de cada usuario que sera trackeado

float confianza;

PVector posCabeza=new PVector();

void setup() {

  size(640, 480);
  fill(255, 0, 0);
  stroke(255,0,0);
  strokeWeight(3);

  miKinect=new SimpleOpenNI(this);
  miKinect.enableDepth();
  miKinect.enableUser();
}

void draw() {

  miKinect.update();
  imagenPro=miKinect.depthImage();
  image(imagenPro, 0, 0);

  usuarioId=miKinect.getUsers(); // conseguir los id de los usuarios trackeados

  for ( int i=0; i<usuarioId.length; i++) { // un loop por cada usuario

    if ( miKinect.isTrackingSkeleton( usuarioId[i] ) ) { // El usuario detectado se ha calibrado correctamente
      confianza=miKinect.getJointPositionSkeleton( usuarioId[i], SimpleOpenNI.SKEL_HEAD, posCabeza);
    }

    if (confianza>0.5) {
      dibujarEsqueleto( usuarioId[i] );
    }
  }
}

void dibujarEsqueleto( int usuarioId ) {
  miKinect.getJointPositionSkeleton(usuarioId, SimpleOpenNI.SKEL_HEAD, posCabeza);
  miKinect.convertRealWorldToProjective(posCabeza, posCabeza);
  float tam=(500/posCabeza.z)*200;
  ellipse(posCabeza.x, posCabeza.y, tam, tam);
 
  //draw limb from head to neck
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);
  //draw limb from neck to left shoulder
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER);
  //draw limb from left shoulde to left elbow
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW);
  //draw limb from left elbow to left hand
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);
  //draw limb from neck to right shoulder
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER);
  //draw limb from right shoulder to right elbow
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW);
  //draw limb from right elbow to right hand
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);
 //draw limb from left shoulder to torso
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  //draw limb from right shoulder to torso
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  //draw limb from torso to left hip
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP);
  //draw limb from left hip to left knee
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_HIP,  SimpleOpenNI.SKEL_LEFT_KNEE);
  //draw limb from left knee to left foot
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);
  //draw limb from torse to right hip
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP);
  //draw limb from right hip to right knee
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE);
  //draw limb from right kneee to right foot
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT);

}

void onNewUser(SimpleOpenNI curContext, int userId)y void onLostUser(SimpleOpenNI curContext, int userId)