{"id":193,"date":"2016-05-25T14:53:14","date_gmt":"2016-05-25T12:53:14","guid":{"rendered":"http:\/\/www.rtbasics.com\/WP_2\/?p=193"},"modified":"2016-05-25T14:53:14","modified_gmt":"2016-05-25T12:53:14","slug":"sensor-de-profundidad-visualizacion","status":"publish","type":"post","link":"https:\/\/www.rtbasics.com\/WP_2\/archives\/193","title":{"rendered":"Sensor de profundidad. Visualizaci\u00f3n."},"content":{"rendered":"<body><p><\/p>Estaba yo pensando\u2026 \u00bfY qu\u00e9 aspecto tiene una nube de puntos?\n<p>Vamos a tratar de averiguarlo.<\/p>\n<p>Ya hemos visto c\u00f3mo se representa una nube de puntos en un fichero. \u00c9sta es una representaci\u00f3n muy conveniente para procesar estos datos con la librer\u00eda PCL. Tambi\u00e9n hemos visto alg\u00fan ejemplo de procesado, y veremos m\u00e1s. Esta representaci\u00f3n facilita la implementaci\u00f3n de estos algoritmos pero, aunque el fichero est\u00e1 codificado en ASCII, leerlo as\u00ed en plan Matrix, pues no es f\u00e1cil; y tratar de construir una imagen de la escena en tu cabeza, yo dir\u00eda que es imposible.<\/p>\n<p><!--more--><\/p>\n<p>Tener una realimentaci\u00f3n intuitiva de las transformaciones que est\u00e1 sufriendo tu escena seg\u00fan se va procesando es muy importante. Es necesario ir confirmando o, al menos disponer de las herramientas para poder hacerlo, que lo que est\u00e1s buscando es lo que est\u00e1s consiguiendo, o no. Un visualizador es, desde mi punto de vista, una herramienta de depuraci\u00f3n muy valiosa.<\/p>\n<p>Para visualizar ficheros pcd he usado dos herramientas:<\/p>\n<p>Primero, el visualizador que incorpora la librer\u00eda PCL. Su funcionalidad es muy b\u00e1sica. Te permite hacer zoom con la rueda del rat\u00f3n y girar la nube alrededor de los ejes de una esfera que abarca todos sus puntos mientras pinchas arrastrando el rat\u00f3n. Enseguida se da uno cuenta de que necesita algo m\u00e1s y se pone a buscar otro visualizador.<\/p>\n<p>De todas maneras, aunque el visualizador no d\u00e9 para mucho, la primera vez que uno ve una escena familiar que acabas de escanear y vas trasteando con el rat\u00f3n girando para un sitio y para otro, se te dibuja una sonrisa y se te pone cara de felicidad. No es para menos: has escaneado tu habitaci\u00f3n y la est\u00e1s viendo dando vueltas en tu ordenador.<\/p>\n<p>Segundo y definitivo, CloudCompare. Es un software de procesado de nubes de puntos en 3D. Desarrollado en EDF R&amp;D y publicado bajo licencia GNU General Public License (GPL), por lo que puede ser usado para cualquier prop\u00f3sito, incluyendo fines comerciales.<\/p>\n<p>La p\u00e1gina oficial de CloudCompare es <a href=\"http:\/\/www.danielgm.net\/cc\/\">http:\/\/www.danielgm.net\/cc\/<\/a>. Es una p\u00e1gina de Daniel Girardeau-Montaut, que imagino que habr\u00e1 tenido algo que ver con su desarrollo y, por eso, le agradezco a EDF su publicaci\u00f3n y a \u00e9l su intervenci\u00f3n en el desarrollo y su trabajo de mantenimiento.<\/p>\n<p>CloudCompare est\u00e1 desarrollado en Qt y est\u00e1 disponible para Windows, Mac OS y Linux. Tambi\u00e9n est\u00e1n disponibles los fuentes. Yo lo he usado en Windows y en Linux (Ubuntu) y mi experiencia ha sido positiva.<\/p>\n<p>Para usarlo en Windows pod\u00e9is bajaros un fichero comprimido, descomprimirlo en un directorio y ejecutarlo con el fichero start.bat. Muy f\u00e1cil. Tambi\u00e9n est\u00e1 disponible la opci\u00f3n de bajaros un instalador.<\/p>\n<p>Para instalarlo en Linux, se puede hacer a trav\u00e9s de un repositorio publicado por Romain Janvier con los siguientes comandos:<\/p>\n<p>sudo add-apt-repository ppa:romain-janvier\/cloudcompare<\/p>\n<p>sudo apt-get update<\/p>\n<p>sudo apt-get install cloudcompare<\/p>\n<p>Tambi\u00e9n bastante f\u00e1cil. Despu\u00e9s de esto encontrar\u00e9is un ejecutable llamado \u201cCloudCompare\u201d en el directorio \/usr\/bin.<\/p>\n<p>Aunque s\u00f3lo lo he usado para visualizar ficheros, dispone de una serie de funcionalidades avanzadas como desplazar nubes, fusionarlas en un \u00fanico fichero, segmentar zonas, aplicar filtros, calcular estad\u00edsticas, etc.<\/p>\n<p>Tambi\u00e9n es capaz de cargar nubes de puntos en otros muchos formatos distintos al pcd y est\u00e1 dise\u00f1ado para gestionar ficheros con millones de puntos. Pod\u00e9is encontrar m\u00e1s informaci\u00f3n en la p\u00e1gina que he mencionado antes\u00a0y\u00a0alg\u00fan tutorial en YouTube.<\/p>\n<p>Una de las ventajas del visualizador de la librer\u00eda PCL es que <a href=\"http:\/\/pointclouds.org\">http:\/\/pointclouds.org<\/a> lo ha embebido en una p\u00e1gina html que publica en su web.<\/p>\n<p>Para que pod\u00e1is ver el aspecto real de una nube de puntos he conseguido, contra todo pron\u00f3stico, incrustar el visualizador en el post y pasarle uno de mis ficheros. Para tener percepci\u00f3n de la profundidad de la nube hay que verla en movimiento, por esto es necesario un visualizador y no vale una foto en 2D.<br>\n<a href=\"http:\/\/www.rtbasics.com\/WP_2\/wp-content\/uploads\/2016\/05\/visualizacion.bmp\"><img decoding=\"async\" class=\"alignleft wp-image-197 size-medium\" src=\"http:\/\/www.rtbasics.com\/WP_2\/wp-content\/uploads\/2016\/05\/visualizacion-300x300.bmp\" alt=\"visualizacion\" width=\"300\" height=\"300\" loading=\"lazy\" srcset=\"https:\/\/www.rtbasics.com\/WP_2\/wp-content\/uploads\/2016\/05\/visualizacion-300x300.bmp 300w, https:\/\/www.rtbasics.com\/WP_2\/wp-content\/uploads\/2016\/05\/visualizacion-150x150.bmp 150w, https:\/\/www.rtbasics.com\/WP_2\/wp-content\/uploads\/2016\/05\/visualizacion.bmp 680w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>La nube representa la composici\u00f3n en un cuadrante de 90\u00ba de varias instant\u00e1neas tomadas en un barrido horizontal cada 15\u00ba de una habitaci\u00f3n. Para tener la percepci\u00f3n real del escenario hay que mirar la nube desde la orientaci\u00f3n desde la que se ha escaneado. En este escenario, la puerta est\u00e1 en la pared del fondo.<\/p>\n<p>Para colocarla en su posici\u00f3n y mirar la escena desde donde estaba el sensor de profundidad hay que ir girando sobre el eje z pinchando y arrastrando el rat\u00f3n en horizontal hasta que se vea la puerta en la pared del fondo.<\/p>\n<p>Para visualizar la nube pincha en el play con el logo de PCL. Tardar\u00e1 unos segundos, no te impacientes. Puedes usar la rueda del rat\u00f3n para cambiar el zoom y girar la nube alrededor de los tres ejes pinchando y arrastrando el rat\u00f3n. Pinchando el logo de la esquina inferior derecha aparecen algunas opciones de visualizaci\u00f3n. Prueba a representar los ejes.<\/p>\n<table border=\"0\" align=\"center\">\n<tbody>\n<tr>\n<td width=\"500\"><iframe loading=\"lazy\" style=\"max-width: 100%;\" src=\"http:\/\/pointclouds.org\/assets\/viewer\/pcl_viewer.html?load=http:\/\/www.rtbasics.com\/Downloads\/3D_pics\/shot_cuad_001_regCuad.pcd&amp;zoom=5\" width=\"500\" height=\"500\" frameborder=\"no\" marginwidth=\"0\" marginheight=\"0\" align=\"center\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>En los siguientes posts explicar\u00e9 c\u00f3mo he compuesto la escena a partir de varias instant\u00e1neas con la ayuda de una plataforma de pan&amp;tilt y la librer\u00eda PCL.<\/p>\n<\/body>","protected":false},"excerpt":{"rendered":"<p>Estaba yo pensando\u2026 \u00bfY qu\u00e9 aspecto tiene una nube de puntos? Vamos a tratar de averiguarlo. Ya hemos visto c\u00f3mo se representa una nube de puntos en un fichero. \u00c9sta es una representaci\u00f3n muy conveniente para procesar estos datos con &hellip; <a href=\"https:\/\/www.rtbasics.com\/WP_2\/archives\/193\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,21,20],"tags":[23,30,22,24,25],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-broadcasting","category-depth-sensors","category-sensors","tag-asus-xtion","tag-cloudcompare","tag-kinect","tag-openni","tag-pcl"],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4vaHY-37","_links":{"self":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/comments?post=193"}],"version-history":[{"count":8,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/posts\/193\/revisions\/202"}],"wp:attachment":[{"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/media?parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/categories?post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rtbasics.com\/WP_2\/wp-json\/wp\/v2\/tags?post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}