{"id":237,"date":"2010-09-22T17:06:22","date_gmt":"2010-09-22T17:06:22","guid":{"rendered":"http:\/\/www.dtic.upf.edu\/~jagenjo\/?p=237"},"modified":"2010-09-22T17:06:22","modified_gmt":"2010-09-22T17:06:22","slug":"infografia-ii-practica-1-seam-carving","status":"publish","type":"post","link":"https:\/\/tamats.com\/upf\/?p=237","title":{"rendered":"Infografia, Pr\u00e1ctica 1: Seam Carving"},"content":{"rendered":"<h3>Introducci\u00f3n<\/h3>\n<p>Esta pr\u00e1ctica consiste en la implementaci\u00f3n del algoritmo de Seam Carving para redimensionado de imagenes.<\/p>\n<blockquote><p>Shai Avidan, Ariel Shamir<a href=\"http:\/\/www.faculty.idc.ac.il\/arik\/imret.pdf\" target=\"_blank\"><\/a><\/p>\n<p><a href=\"http:\/\/www.dtic.upf.edu\/~jagenjo\/uploads\/seam_carving.pdf\" target=\"_blank\">Seam Carving for Content-Aware Image Resizing<\/a><br \/>\nACM Transactions on Graphics, Volume 26, Number 3,<br \/>\nSIGGRAPH 2007<\/p><\/blockquote>\n<p><img decoding=\"async\" src=\"uploads\/imgs\/seamcarving.png\" alt=\"\" \/><\/p>\n<p>El algoritmo permite redimensionar imagenes sin que se aprecian algunos de los problemas habituales como cambios de proporcion o interpolaciones.<\/p>\n<h3>Material<\/h3>\n<ul>\n<li><a href=\"http:\/\/www.dtic.upf.edu\/~jagenjo\/uploads\/seam_carving.pdf\">Paper sobre Seam Carving for content-aware image resizing<\/a><\/li>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=6NcIJXTlugc\" target=\"_blank\">Video explicativo<\/a><\/li>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=AJtE8afwJEg\">Otro video, este aplicando el algoritmo a una secuencia de video<\/a><\/li>\n<li><a href=\"uploads\/infografia2013.zip\">Framework de la pr\u00e1ctica<\/a><\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Histogram_of_oriented_gradients\">Calculo del HoG<\/a> [<a href=\"http:\/\/ljk.imag.fr\/membres\/Bill.Triggs\/pubs\/Dalal-cvpr05.pdf\">Paper original<\/a>]<\/li>\n<\/ul>\n<h3>Desarrollo<\/h3>\n<p>Teneis que usar el framework que os pasamos. Contiene una clase Color util para operar con colores, y una clase Image que os permite gestionar las imagenes (acceder a un pixel, cargar un TGA, guardar un TGA).<\/p>\n<p>Teneis que usar GCC, si veis que no lo teneis instalado, escribid el siguiente comando desde vuestro terminal:<\/p>\n<blockquote><p><strong>upf-software-install-grafic gcc<\/strong><br \/>\n<strong>upf-software-install-grafic gcc-c++<\/strong><\/p><\/blockquote>\n<p>Una vez instalada descomprimid el framework (unzip infografia2013.zip) y dentro encontrareis el codigo a utilizar<\/p>\n<p>Ahora podemos compilar el c\u00f3digo ejemplo:<\/p>\n<blockquote><p>g++ src\/*.cpp -o app -std=c++0x<\/p><\/blockquote>\n<p>Se habr\u00e1 creado un binario llamado prueba. Para ejecutarlo:<\/p>\n<blockquote><p>.\/app sunset.tga sunset2.tga<\/p><\/blockquote>\n<p>Las im\u00e1genes las pod\u00e9is ver con el comando display si estais en linux y teneis instalado ImageMagick:<\/p>\n<blockquote><p>display sunset.tga<\/p><\/blockquote>\n<p>Si estais en windows podeis usar cualquier programa de imagenes.<\/p>\n<h3>Experimentos<\/h3>\n<p>Probar con diferentes tipos de im\u00e1genes y con varios juegos de par\u00e1metros, buscando evaluar la eficacia y los problemas del algoritmo.<\/p>\n<h3>Entrega<\/h3>\n<p>La clase de la semana del <strong>6 al 10 de mayo<\/strong> antes de las 9 de la ma\u00f1ana.<\/p>\n<p><strong>No se aceptan entregas tard\u00edas, no se hacen excepciones.<\/strong><\/p>\n<p><strong>Se entrega desde el Aula Global<\/strong>, si teneis algun problema enviadmela por mail pero tratad primero de entregarla por el Aula Global.<\/p>\n<p>Qu\u00e9 se entrega:<\/p>\n<ul>\n<li>Informe: introducci\u00f3n, el algoritmo, explicaci\u00f3n del c\u00f3digo, experimentos, conclusiones. En formatos html, ps, pdf o rtf.<\/li>\n<li>C\u00f3digo C++, comentado, listo para compilar (con su Makefile). Formato: ASCII.<\/li>\n<li>Las im\u00e1genes (cualquier formato) y par\u00e1metros (ascii) usados en los experimentos.<\/li>\n<li>Se deben poder reproducir los experimentos con todos los materiales entregados, en cualquier PC de aulas, en Linux.<\/li>\n<li>En caso de copia (entre equipos, o de otras fuentes) todos los integrantes de los equipos involucrados suspender\u00e1n inmediatamente la asignatura, y el Departament abrir\u00e1 un expediente solicitando la expulsi\u00f3n temporal de dichos estudiantes.<\/li>\n<\/ul>\n<h3>Defensa<\/h3>\n<p>Duraci\u00f3n: 10 minutos por equipo, con preguntas individuales. Todos los integrantes deben estar plenamente familiarizados con el trabajo de su equipo. Esta clase es de asistencia obligatoria. <strong>No hay que traer Slides, ser\u00e1 una presentaci\u00f3n oral delante del c\u00f3digo.<\/strong><\/p>\n<p><a href=\"uploads\/infografia\/info1_test.zip\">Imagenes test<\/a><\/p>\n<h3>Imagenes<\/h3>\n<p>Usad las siguientes imagenes:<\/p>\n<ul>\n<li><a href=\"uploads\/infografia\/vector1.tga\">Vector<\/a><\/li>\n<li><a href=\"uploads\/infografia\/trees.tga\">Trees<\/a><\/li>\n<li><a href=\"uploads\/infografia\/crowd.tga\">Crowd<\/a><\/li>\n<li><a href=\"uploads\/infografia\/coast.tga\">Coast<\/a><\/li>\n<\/ul>\n<h3>Consejos<\/h3>\n<ul>\n<li>Leer el art\u00edculo con atenci\u00f3n.<\/li>\n<li>Volver a leer el art\u00edculo con atenci\u00f3n.<\/li>\n<li>Invertir un buen tiempo en planear el c\u00f3digo, no ponerse a programar directamente.<\/li>\n<li>Hacer c\u00f3digo modular: desglosar la tarea global en partes, hacer funciones para estas partes, llamar a las funciones desde un programa principal corto.<\/li>\n<li>Estudiar el programa C++ de ejemplo, ver qu\u00e9 operaciones con im\u00e1genes hay definidas y c\u00f3mo se acceden y modifican los valores de los pixels.<\/li>\n<li>Mientras se escribe el c\u00f3digo, y para hacer &#8216;debugging&#8217;, hacer pruebas con im\u00e1genes peque\u00f1as y sencillas.<\/li>\n<li>Probar primero con im\u00e1genes en escala de grises.<\/li>\n<li>Implementar primero la reducci\u00f3n de fotos y si da tiempo probad con el ampliado de fotos.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Esta pr\u00e1ctica consiste en la implementaci\u00f3n del algoritmo de Seam Carving para redimensionado de imagenes. Shai Avidan, Ariel Shamir Seam Carving for Content-Aware Image Resizing ACM Transactions on Graphics, Volume 26, Number 3, SIGGRAPH 2007 El algoritmo permite redimensionar imagenes sin que se aprecian algunos de los problemas habituales como cambios de proporcion o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/237"}],"collection":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=237"}],"version-history":[{"count":0,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/237\/revisions"}],"wp:attachment":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}