{"id":11,"date":"2012-07-18T21:40:20","date_gmt":"2012-07-18T21:40:20","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/pvpotes\/?p=11"},"modified":"2012-07-18T22:19:35","modified_gmt":"2012-07-18T22:19:35","slug":"codigo-qr-en-java-y-realidad-aumentada","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/pvpotes\/2012\/07\/18\/codigo-qr-en-java-y-realidad-aumentada\/","title":{"rendered":"CODIGO QR EN JAVA  Y REALIDAD AUMENTADA"},"content":{"rendered":"<p>Codigo QR se puede guardar informaci\u00f3n de todo en c\u00f3digo que no es visible f\u00e1cilmente sino que hay que usar una aplicaci\u00f3n para poder visualizar la informaci\u00f3n, que te pueden mandar un sms , visitar un sitio web , en mi caso baje la aplicaci\u00f3n que fue muy f\u00e1cil en mi tel\u00e9fono iphone me puse en AppStore \u2013buscar- Scanlife que es una aplicaci\u00f3n gratis y f\u00e1cil de bajar , se espera unos minutos y se carga .Luego me dirigi al link http:\/\/www.qrstuff.com\/index.html que te crea los c\u00f3digos qr y elegi plain text que me crea un texto.Pero no tan solo se crea texto sino que tambi\u00e9n se pueden se pueden crear un archivo gif y son mas de 20 tipos de datos, tambi\u00e9n para el uso de dise\u00f1o grafico en formato raser png o jpg . Estaba buscando c\u00f3digo qr de Espol y nos lleva a la pagina de internet de edina con toda la descripci\u00f3n de espol como direcci\u00f3n tel\u00e9fono, etc.<br \/>\nHasta un 30 % de un c\u00f3digo qr se pod\u00eda quitar e incrustrar una imagen y el c\u00f3digo deber\u00eda seguir funcionando<br \/>\nSi se derrama o corta el c\u00f3digo no funciona y sale como da\u00f1ado<br \/>\nAqu\u00ed les dejos algunas indicaciones que encontr\u00e9 en el block de que hacer y no hacer en el c\u00f3digo qr<br \/>\nMantener el tama\u00f1o de la imagen por debajo del 15% de la misma<br \/>\n\u2022 fue que no se puede borrar las tres esquinas con cuadrados que hay son de mucha importancia para la lectura de c\u00f3digo, ya que permiten detectar la posici\u00f3n del lector de c\u00f3digo<br \/>\n\u2022 Siempre dejar un borde en blanco<br \/>\n\u2022 Dentro de los c\u00f3digos qr no tienen que tener ninguna imagen incrustrada en ellas<br \/>\nNo utilizar el Api de Google<br \/>\nhttp:\/\/www.youtube.com\/watch?v=oIN2JohKEGY este es link de video que me dirigio a las paginas siguientes.<\/p>\n<p>Bueno seg\u00fan comprob\u00e9 se ingresa a la pagina que pongo a continuaci\u00f3n esta detallado para instalar en tel\u00e9fonos iphones la aplicaci\u00f3n que baje es Scanlife , y en esta pagina se genera los c\u00f3digos que ud quiere como por ejemplo<br \/>\nhttp:\/\/www.qrstuff.com\/index.html<\/p>\n<p>http:\/\/code.google.com\/p\/zxing\/downloads\/detail?name=ZXing-1.6.zip&can=2&q=<br \/>\nen este link bajamos las librer\u00edas que nos falta en netbeans ZXing 1.6 release<br \/>\nAplicaremos las librer\u00edas zxing 1.6 en el netbeans<br \/>\nPonemos nuevo proyecto en netbeans , se agregan las librer\u00edas en la barra de men\u00fa \u2013 biblioteca \u2013agregar \u2013 y agregamos .jar\n\t\t<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-11 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/blog.espol.edu.ec\/pvpotes\/files\/2012\/07\/QR1.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blog.espol.edu.ec\/pvpotes\/files\/2012\/07\/QR1-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/blog.espol.edu.ec\/pvpotes\/files\/2012\/07\/QR11.png'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/blog.espol.edu.ec\/pvpotes\/files\/2012\/07\/QR11-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n<\/p>\n<p>Luego agregamos las importaciones de las librer\u00edas que necesitamos<br \/>\nimport com.google.zxing.BinaryBitmap;<br \/>\nimport com.google.zxing.LuminanceSource;<br \/>\nimport com.google.zxing.MultiFormatReader;<br \/>\nimport com.google.zxing.Reader;<br \/>\nimport com.google.zxing.Result;<br \/>\nimport com.google.zxing.client.j2se.BufferedImageLuminanceSource;<br \/>\nimport com.google.zxing.common.HybridBinarizer;<br \/>\nimport java.awt.image.BufferedImage;<br \/>\nimport java.io.File;<br \/>\nimport javax.imageio.ImageIO;<br \/>\nDespues ingresamos tres m\u00e9todos que nos servir\u00e1n para lectura de c\u00f3digo qr<br \/>\nReader leer = new MultiFormatReader();<br \/>\nFile ubicacionImagen = new File(System.getProperty(\"user.home\") + \"\/qrcodeDemo.gif\");<br \/>\nBufferedImage imagen;<br \/>\nleer: Objeto de tipo Reader que realizara la interpretacion del codigo QR<br \/>\nubicacionImagen: El archivo que contiene la imagen con el codigo a interpretar.<br \/>\nimagen: Utilizado para leer la imagen.<br \/>\nLuminanceSource fuente = new BufferedImageLuminanceSource(imagen);<br \/>\nY creamos un mapa de bits a partir de ella...<br \/>\nBinaryBitmap mapaBits = new BinaryBitmap(new HybridBinarizer(fuente));<br \/>\nCon esto va a ser posible leer su contenido, para ello le indicamos al lector que decodifique el mapa de bits que reci\u00e9n hemos creado:<br \/>\nResult resultado = lector.decode(mapaBits);<br \/>\nEl resultado lo almacena en un objeto de tipo com.google.zxing.Result al cual solo debemos invocar el m\u00e9todo getText() para obtener el contenido del c\u00f3digo QR:<br \/>\nSystem.out.println(\"Contenido del codigo = \"+resultado.getText());<br \/>\nPara que el c\u00f3digo anterior funcione debemos encerrarlo dentro de un try-catch.<br \/>\nAl ejecutar la aplicaci\u00f3n tras realizar los pasos anteriores estaremos decodificando el c\u00f3digo QR dentro de la imagen indicada.<\/p>\n<p>REALIDAD AUMENTADA<br \/>\nEs una visi\u00f3n del mundo real de los cuales se combinan con elementos virtuales. Es una realidad mixta a tiempo real . Son conjuntos de dispositivos que a\u00f1aden informaci\u00f3n a la imagen<br \/>\nEs decir a una imagen se le agrega informaci\u00f3n adicional, no substituye a la realidad f\u00edsica sino que a\u00f1ade. Son una secuencia de videos como una forma de aumentar el mundo real .Permite visualizar todo el entorno f\u00edsico , real, podemos ver una imagen de distintos angulos.<br \/>\nPodemos decir que:<br \/>\n\u2022 Tenemos una webcam o similar capaz de leer im\u00e1genes.<br \/>\n\u2022 Con el software adecuado instalado<br \/>\n\u2022 Se lee la imagen con un c\u00f3digo QR<br \/>\n\u2022 Y se presenta la informaci\u00f3n<br \/>\nSeg\u00fan el Smartphone , Tablet , PC etc podremos ver las distintas aplicaciones y la realidad aumentad. Seg\u00fan el software que utilicemos podremos tambi\u00e9n tener informaci\u00f3n textual , multimedia<br \/>\nfuentes:qrstuff.com, youtube y mi aportaci\u00f3n personal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Codigo QR se puede guardar informaci\u00f3n de todo en c\u00f3digo que no es visible f\u00e1cilmente sino que hay que usar una aplicaci\u00f3n para poder visualizar la informaci\u00f3n, que te pueden mandar un sms , visitar un sitio web , en mi caso baje la aplicaci\u00f3n que fue muy f\u00e1cil en mi tel\u00e9fono iphone me puse [&hellip;]<\/p>\n","protected":false},"author":6766,"featured_media":35,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/posts\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/users\/6766"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/posts\/11\/revisions"}],"predecessor-version":[{"id":32,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/posts\/11\/revisions\/32"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/media\/35"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/media?parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/categories?post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/pvpotes\/wp-json\/wp\/v2\/tags?post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}