<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Open Virtual Object Viewer</title>
	<atom:link href="http://www.openvov.com/blog/?feed=rss2&#038;p=55" rel="self" type="application/rss+xml" />
	<link>http://www.openvov.com/blog</link>
	<description>Software para detección y parametrización de objetos.</description>
	<lastBuildDate>Thu, 29 Nov 2012 12:20:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
		<item>
		<title>Webcam Bluetooth</title>
		<link>http://www.openvov.com/blog/?p=174</link>
		<comments>http://www.openvov.com/blog/?p=174#comments</comments>
		<pubDate>Wed, 17 Feb 2010 08:22:16 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Noticia]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[dispositivo movil]]></category>
		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=174</guid>
		<description><![CDATA[Me estoy planteando utilizar la webcam BT-1 para el proyecto. De tal manera que la persona invidente podría colocar esta cámara donde guarde los CDs, incluso estar fijada a la estantería o colocada sobre la misma. De tal manera que simplemente al sacarl el CD de la estantería dijera cual es. Me permito también recordar [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Me estoy planteando utilizar la <a href="http://www.bt-1.com/">webcam BT-1</a> para el proyecto. De tal manera que la persona invidente podría colocar esta cámara donde guarde los CDs, incluso estar fijada a la estantería o colocada sobre la misma. De tal manera que simplemente al sacarl el CD de la estantería dijera cual es.</p>
<p><a href="http://www.openvov.com/blog/wp-content/uploads/2010/02/bt-1-ecamm.jpg"><img class="aligncenter size-full wp-image-175" title="bt-1-ecamm" src="http://www.openvov.com/blog/wp-content/uploads/2010/02/bt-1-ecamm.jpg" alt="bt-1-ecamm" width="450" height="300" /></a></p>
<p style="text-align: justify;">Me permito también recordar que la aplicación de reconocimiento de carátulas de CD es tan solo una de las posibilidades que quizá por su relación sencillez/complicación y la componente marketiniana que tanto me gusta he decidido implemetar primero.</p>
<p style="text-align: justify;">Su precio es de 150$ lo cual tampoco es un problema por que es una cosa que se puede reutilizar con facilidad.Incluso como cámara espía!</p>
<p style="text-align: justify;"><strong>El único problema</strong> (y esto a luixal le va a encantar xD). Solo funciona sobre Mac OS X.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=174</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sustraccion de fondo o Background subtraction en OpenCV</title>
		<link>http://www.openvov.com/blog/?p=161</link>
		<comments>http://www.openvov.com/blog/?p=161#comments</comments>
		<pubDate>Wed, 17 Feb 2010 07:55:32 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[fondo]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[subtraction]]></category>
		<category><![CDATA[sustraccion]]></category>
		<category><![CDATA[Vision por computador]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=161</guid>
		<description><![CDATA[Para mejorar las posibilidades de la detección de cuadrados en busca de la carátula de CD me he aventurado a probar la sustracción de fondo. Considero que la cámara va a estar colocada en un sitio concreto. Incluso me estoy planteando enfocarla hacia arriba. Pero eso es facilitarme las cosas demasiado. Primero quiero ver las [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Para mejorar las posibilidades de la detección de cuadrados en busca de la carátula de CD me he aventurado a probar la sustracción de fondo.</p>
<p style="text-align: justify;">Considero que la cámara va a estar colocada en un sitio concreto. Incluso me estoy planteando enfocarla hacia arriba. Pero eso es facilitarme las cosas demasiado. Primero quiero ver las carátulas y después ir subiendo la complejidad. Es posible que cada vez que suba un nivel de complejidad el enfoque para llegar a la solución sea diferente. Pero lo importante es aprender <img src='http://www.openvov.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Acepto críticas y sugerencias. (De sabios es evaluar y dudar cuidadosamente cualquier afirmación).</p>
<p style="text-align: justify;">Con este enfoque pretendo quedarme con lo que se mueva y a partir de ahí pasar el detector de cuadrados.</p>
<p style="text-align: justify;"><strong>En el código que estoy utilizando:</strong></p>
<ul style="text-align: justify;">
<li>Es un refrito, hay partes en castellano y otras en ingles. ¡ Son pruebas !</li>
<li>Se está realizando una sustracción del fondo Gausiana (Gaussian Mixture Model)</li>
<li>Se genera un mapa de bits donde el negro absoluto significa fondo y el blanco puro significa &#8220;no fondo&#8221; ( es decir, algo en movimiento)</li>
<li>En la ventana llamada &#8220;Original&#8221; genero una imagen en la que solo se ve lo que está en movimiento.</li>
<li style="text-align: justify;">Tiene un warning en la asignación de valor a x, insisto! son pruebas!</li>
</ul>
<p><a href="http://www.openvov.com/blog/wp-content/uploads/2010/02/backgrsub.png"><img class="aligncenter size-full wp-image-163" title="backgrsub" src="http://www.openvov.com/blog/wp-content/uploads/2010/02/backgrsub.png" alt="backgrsub" width="500" height="380" /></a></p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong>Enlaces de interés:</strong></p>
<ul>
<li>Proyecto fin de carrera que lo utiliza y me gusta la idea: &#8220;<a href="www.escet.urjc.es/~jjpantrigo/PFCs/PFCobjetosAbandonados.pdf ">PFC &#8211; URJC &#8211; Detector de objetos abandonados</a>&#8220;</li>
<li><a href="http://www-staff.it.uts.edu.au/~massimo/BackgroundSubtractionReview-Piccardi.pdf">Background Subtraction</a></li>
<li>Mixed Models (<a href="http://en.wikipedia.org/wiki/Mixture_model">Gaussian Mixture Model</a>)</li>
<li><a href="http://n2.nabble.com/Re-help-needed-urgently-td2185304.html">Código fuente original</a></li>
</ul>
<p><strong>Código:</strong></p>
<p><span id="more-161"></span></p>
<p style="text-align: justify;">
<pre class="brush: cpp;">
#include &quot;cv.h&quot;
#include &quot;cvaux.h&quot;
#include &quot;highgui.h&quot;
#include &lt;stdio.h&gt;

const CvScalar C_RGB_BLACK = cvScalar(0,0,0);
const CvScalar C_RGB_WHITE = cvScalar(255,255,255);
const CvScalar C_GRAY_WHITE = cvScalar(255);
const CvScalar C_GRAY_BLACK= cvScalar(0);
const CvScalar C_RGB_RED = cvScalar(0,0,255);

void paintPixel(IplImage* in,int x, int y,CvScalar color) throw()
{   // comprueba que los puntos están dentro de la imagen
    if(in != NULL)
    {
        if(y&gt;=0 &amp;&amp; y&lt;(in-&gt;height) &amp;&amp; x&gt;=0 &amp;&amp; x&lt;(in-&gt;width))
        {   // modifica el pixel a nivel de byte sobre el vector de la imagen.
            char *data = in-&gt;imageData;
            data[y*in-&gt;widthStep+x*in-&gt;nChannels]=color.val[0];
            data[y*in-&gt;widthStep+x*in-&gt;nChannels+1]=color.val[1];
            data[y*in-&gt;widthStep+x*in-&gt;nChannels+2]=color.val[2];
        }
    }
}

// TODO
bool comparePixel(IplImage* in,int x, int y,CvScalar color) throw()
{   // comprueba que los puntos están dentro de la imagen
    if(in != NULL)
    {
            char *data = in-&gt;imageData;
            return(data[y*in-&gt;widthStep+x*in-&gt;nChannels]==color.val[0]);
    }
    return false;
}

//this is a sample for foreground detection functions
int main(int argc, char** argv)
    {
    IplImage* tmp_frame = NULL;
    CvCapture* cap = NULL;

    cap = cvCreateCameraCapture(0);
    tmp_frame = cvQueryFrame(cap);

    if(!tmp_frame)
    {
        printf(&quot;bad video \n&quot;);
        exit(0);
    }

    cvNamedWindow(&quot;BG&quot;, 1);
    cvNamedWindow(&quot;FG&quot;, 1);
     cvNamedWindow(&quot;Original&quot;, 1);

    //create BG model
    CvBGStatModel* bg_model = cvCreateGaussianBGModel( tmp_frame );

    double t;
    IplImage* cpy;
    int x = 0;
    int y = 0;

    for( int fr = 1;tmp_frame; tmp_frame = cvQueryFrame(cap), fr++ )
    {
        t = (double) cvGetTickCount();
        // Background substraction
        cvUpdateBGStatModel( tmp_frame, bg_model );
        cpy = cvCloneImage( bg_model-&gt;foreground );

        for (x=(cpy-&gt;width-1);x&gt;=0;x=x--)
            for (y=(cpy-&gt;height-1);y&gt;= 0;y--)
                if(comparePixel(cpy,x,y,C_GRAY_BLACK))
                    paintPixel(tmp_frame,x,y,C_RGB_BLACK);

        cvShowImage(&quot;BG&quot;, bg_model-&gt;background);
        cvShowImage(&quot;FG&quot;, bg_model-&gt;foreground);
        cvShowImage(&quot;Original&quot;, tmp_frame);

        int k = cvWaitKey(15);
        if( k == 27 ) break;
        //printf(&quot;frame# %d \r&quot;, fr);
    }

    cvReleaseBGStatModel( &amp;bg_model );
    cvReleaseCapture(&amp;cap);

return 0;
}

</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=161</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Detección de cuadrados I</title>
		<link>http://www.openvov.com/blog/?p=154</link>
		<comments>http://www.openvov.com/blog/?p=154#comments</comments>
		<pubDate>Sun, 14 Feb 2010 17:47:08 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Documentación]]></category>
		<category><![CDATA[deteccion de cuadrados]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[rectangulos]]></category>
		<category><![CDATA[square detection]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=154</guid>
		<description><![CDATA[Como primera aproximación para detectar las carátulas de CDs se me ha ocurrido lo siguiente. También utilizaré este post a modo de &#8220;en que punto me encuentro&#8221;. Acotando el problema: El dispositivo de captura de imagenes no se mueve. (El fondo está fijo) El CD entra en la imagen. (Se puede filtrar por movimiento) Problemillas [...]]]></description>
			<content:encoded><![CDATA[<p>Como primera aproximación para detectar las carátulas de CDs se me ha ocurrido lo siguiente. También utilizaré este post a modo de &#8220;en que punto me encuentro&#8221;.</p>
<p><strong>Acotando el problema:</strong></p>
<ul>
<li> El dispositivo de captura de imagenes no se mueve. (El fondo está fijo)</li>
<li> El CD entra en la imagen. (Se puede filtrar por movimiento)</li>
</ul>
<p><span id="more-154"></span></p>
<p><strong>Problemillas encontrados:</strong></p>
<ol>
<li> Una persona invidente no sabrá si la cámara está recibiendo mucha o poca luz.</li>
<li> Tampoco tendrá en cuenta los brillos que se producen en la carcasa del CD, que son muchos.</li>
</ol>
<p><strong>Primera aproximación:</strong></p>
<ol>
<li> Eliminar el fondo. (todo lo que <strong>no</strong> se mueva). (Terminado)</li>
<li> Generar una imagen intermedia que únicamente muestre lo que está en movimiento. (TODO, working on it!)</li>
<li> Probar el detector de cuadrados de OpenCV para delimitar una región de interes. (Funcionando, imagen)</li>
<li> Desarrollar un algoritmo que &#8220;afine&#8221; la detección de cuadrados y recorte la imagen de la carátula. (TODO)</li>
</ol>
<p style="text-align: center;"><a href="http://www.openvov.com/blog/wp-content/uploads/2010/02/image1.png"><img class="size-full wp-image-156 aligncenter" title="image1" src="http://www.openvov.com/blog/wp-content/uploads/2010/02/image1.png" alt="image1" width="250" height="187" /></a></p>
<p>En la imagen se puede apreciar el detector de cuadrados de OpenCv. Lo cierto es que funciona bastante mal. He decidido meter una imagen en la que justo se vea el cuadrado en la carátula. Pero tengo que decir que no es lo habitual. Hay que trabajar en ello.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=154</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenCV capturando WebCam &#8211; Inicio</title>
		<link>http://www.openvov.com/blog/?p=145</link>
		<comments>http://www.openvov.com/blog/?p=145#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:22:41 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Desarrollo]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=145</guid>
		<description><![CDATA[Aquí dejo un ejemplo de OpenCV utilizando la webcam para mostrar la información por pantalla. Para incluir nuevos procesos solo hay que transformar la imagen entre la captura y la muestra, aplicar los algoritmos correspondientes y resaltar aquello que se considere oportuno. #include &#60;cv.h&#62; #include &#60;highgui.h&#62; int main(int argc, char** argv) { // Crea una [...]]]></description>
			<content:encoded><![CDATA[<p>Aquí dejo un ejemplo de OpenCV utilizando la webcam para mostrar la información por pantalla. Para incluir nuevos procesos solo hay que transformar la imagen entre la captura y la muestra, aplicar los algoritmos correspondientes y resaltar aquello que se considere oportuno.</p>
<p><span id="more-145"></span></p>
<pre class="brush: cpp;">
#include &lt;cv.h&gt;
#include &lt;highgui.h&gt;

int main(int argc, char** argv)
    {
	 // Crea una ventana llamada Original Image con un tamaño predeterminado.
	cvNamedWindow(“Original Image”, CV_WINDOW_AUTOSIZE);

	// Crea la conexion con la Webcam.
	CvCapture* capture = cvCreateCameraCapture(0);

	// Variable donde se almazenara el frame sacado de la webcam.
	IplImage* originalImg;

	// Hago que el ancho del capture sea de 320px
	if(cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH,320))
        // Ojo! esta condicion puede ser problematica si tu webcam no soporta el ancho de 320 pixels

	while(true)
        {

	    // Pongo el frame capturado dentro de la imagen originalImg.
	    originalImg = cvQueryFrame(capture);

	    if(!originalImg) break;

	    // Hago que se vea el frame dentro de la ventana “Original Image”.
	    cvShowImage(“Original Image”, originalImg);

	    // Espero a que me pulsen el ESC para salir del bucle infinito.
	    char c = cvWaitKey(10);
	    if( c == 27 ) break;
    }

    // Libera la memoria utilizada por la variable capture.
    cvReleaseCapture(&amp;capture);

    // Destruye la ventana “Original Image”.
    cvDestroyWindow(“Original Image”);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=145</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Utilizar OpenCV con Code::Blocks en Ubuntu 9.10</title>
		<link>http://www.openvov.com/blog/?p=113</link>
		<comments>http://www.openvov.com/blog/?p=113#comments</comments>
		<pubDate>Sun, 07 Feb 2010 14:08:04 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Codeblocks]]></category>
		<category><![CDATA[linkar]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=113</guid>
		<description><![CDATA[Lincar la librería de OpenCV en Code::Blocks es extremadamente sencillo. Una vez instalado OpenCV y creado el proyecto solo hay que ir al menú Project&#62;Properties y en la pestaña Libraries que queda la penúltima a la derecha incluir la librería buscando &#8220;opencv&#8221;. Puede parecer una estupidez pero se pierde muchisimo tiempo si no se conoce [...]]]></description>
			<content:encoded><![CDATA[<p>Lincar la librería de OpenCV en Code::Blocks es extremadamente sencillo. Una vez instalado OpenCV y creado el proyecto solo hay que ir al menú Project&gt;Properties y en la pestaña Libraries que queda la penúltima a la derecha incluir la librería buscando &#8220;opencv&#8221;.</p>
<p>Puede parecer una estupidez pero se pierde muchisimo tiempo si no se conoce esta tontuna.</p>
<p>A partir de aquí podemos utilizar OpenCV de manera normal. Sin problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=113</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar OpenCV en Ubuntu 9.10</title>
		<link>http://www.openvov.com/blog/?p=107</link>
		<comments>http://www.openvov.com/blog/?p=107#comments</comments>
		<pubDate>Sun, 07 Feb 2010 13:05:00 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[instalar]]></category>
		<category><![CDATA[librerias]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Vision por computador]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=107</guid>
		<description><![CDATA[La instalación de OpenCV v 1.1 en Ubuntu 9.10 y 8.1 está automatizada con el Gestor de Paquetes Synaptic. Solo hay que ir a Sistema&#62;Administración&#62;Gestor de Paquetes Synaptic y buscar &#8220;libcv.dev&#8221; hacer doble click en este paquete y aceptar la instalación de los paquetes necesarios. Instalar la versión 2.0 de OpenCV es más problemático y [...]]]></description>
			<content:encoded><![CDATA[<p>La instalación de OpenCV v 1.1 en Ubuntu 9.10 y 8.1 está automatizada con el Gestor de Paquetes Synaptic.</p>
<p>Solo hay que ir a Sistema&gt;Administración&gt;Gestor de Paquetes Synaptic y buscar &#8220;<strong>libcv.dev</strong>&#8221; hacer doble click en este paquete y aceptar la instalación de los paquetes necesarios.</p>
<p>Instalar la versión 2.0 de OpenCV es más problemático y las mejoras pese a ser abundantes no son necesarias para el desarrollo de <a href="http://www.openvov.com/blog/?page_id=7">Open Virtual Object Viewer</a>.</p>
<p>Recomendaciones:</p>
<ul>
<li>Como tutorial principal y guía de referencia recomiendo el wiki de <a href="http://opencv.willowgarage.com/wiki/">Wilowgarage</a>.</li>
<li>Como guía de referencia y para aprendizaje de directrices de visión por computador lo mejor es el libro de <a href="http://oreilly.com/catalog/9780596516130">O`Really Learning OpenCV.</a></li>
<li>Para temas sencillos recomiendo utilizar OpenCV 1.1, si requieres algo más concreto o más depurado mirate la versión 2.0</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=107</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalar codeblocks en Ubuntu 9.10</title>
		<link>http://www.openvov.com/blog/?p=98</link>
		<comments>http://www.openvov.com/blog/?p=98#comments</comments>
		<pubDate>Sat, 06 Feb 2010 21:09:00 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[instalacion]]></category>
		<category><![CDATA[instalar]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=98</guid>
		<description><![CDATA[Para el desarrollo de la aplicación sobre el teléfono Android utilizaré la IDE Code::Blocks. Es la que utilizo en el trabajo, me la han recomendado especialmente para C++. A continuación un mini-tutorial para instalarla en Ubuntu 9.10 Actualizar paquetes: $ sudo aptitude update Instalación: $ sudo aptitude install codeblocks codeblocks-contrib Es recomendable instalar también: $ [...]]]></description>
			<content:encoded><![CDATA[<p>Para el desarrollo de la aplicación sobre el teléfono Android utilizaré la IDE Code::Blocks. Es la que utilizo en el trabajo, me la han recomendado especialmente para C++.</p>
<p>A continuación un mini-tutorial para instalarla en Ubuntu 9.10</p>
<p><strong>Actualizar paquetes:</strong><br />
$ sudo aptitude update<a href="http://www.openvov.com/blog/wp-content/uploads/2010/02/code-blocks.png"><img class="alignright size-full wp-image-103" title="code-blocks" src="http://www.openvov.com/blog/wp-content/uploads/2010/02/code-blocks.png" alt="code-blocks" width="96" height="96" /></a></p>
<p><strong>Instalación:</strong><br />
$ sudo aptitude install codeblocks codeblocks-contrib</p>
<p><strong>Es recomendable instalar también:</strong><br />
$ sudo aptitude install build-essential gdb subversion<br />
$ sudo aptitude install automake autoconf libtool<br />
$ sudo aptitude install libgtk2.0-dev libxmu-dev libxxf86vm-dev</p>
<p><strong>Para trabajar con wxWidgets GUI toolkit:</strong><br />
$ sudo aptitude install libwxbase2.8-dev wx2.8-headers libwxgtk2.8-dev wx-common<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Estamos listos! Ahora para ejecutar, desde el menú de Aplicaciones&gt;Programación o en línea de comando:<br />
$ ./codeblocks</p>
<p><strong>Nota:</strong> En Ubuntu 8.04 no funciona Code::Blocks IDE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=98</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Content-based Image Retrieval (descripción y bibliografía)</title>
		<link>http://www.openvov.com/blog/?p=63</link>
		<comments>http://www.openvov.com/blog/?p=63#comments</comments>
		<pubDate>Sat, 16 Jan 2010 16:59:43 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[CBIR]]></category>
		<category><![CDATA[content-based]]></category>
		<category><![CDATA[sistema]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=63</guid>
		<description><![CDATA[La Consulta de imágenes mediante ejemplo (Content-based Image Retrieval o CBIR) es un sistema de búsqueda para recuperar imágenes basándose en su contenido, refiriéndose en su contexto a colores, formas, texturas o cualquier otra información que pueda derivarse de la propia imagen. En la prehistoria de los sistemas CBIR se utilizaban metadatos que consisten en [...]]]></description>
			<content:encoded><![CDATA[<p>La <em>Consulta de imágenes mediante ejemplo</em> (<strong>Content-based Image Retrieval o CBIR</strong>) es un sistema de búsqueda para recuperar imágenes basándose en su contenido, refiriéndose en su contexto a colores, formas, texturas o cualquier otra información que pueda derivarse de la propia imagen.</p>
<p><img class="aligncenter size-full wp-image-73" title="Esquema de funcionamiento de un sistema CBIR" src="http://www.openvov.com/blog/wp-content/uploads/2010/01/esqFuncCBIR.jpg" alt="Esquema de funcionamiento de un sistema CBIR" width="500" height="216" /></p>
<p>En la prehistoria de los sistemas CBIR se utilizaban metadatos que consisten en palabras o frases cortas que tratan de definir lo que contenía una imagen. La inclusión de estos metadatos se realizaba manualmente y servía como índice y parámetro de recuperación. En la actualidad este proceso podría ocupar a toda la población de un país pequeño y sería extremadamente costoso. Se debe indexar la información para poder recuperarla de forma rápida y efectiva. Es por eso que los metadatos dejan de tener sentido para colecciones de imágenes grandes y toman fuerza los sistemas automáticos de indexación y recuperación basados en lo que contiene la imagen.</p>
<p>Must Read (Debes leer):  <span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><a onmousedown="return rwt(this,'','','res','1','AFQjCNFdz2qzt1tarKAx7jldp-JFKfEliQ','','0CAcQFjAA')" href="http://www.google.es/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CAcQFjAA&amp;url=http%3A%2F%2Fwww.cea-ifac.es%2Factividades%2Fjornadas%2FXXIV%2Fdocumentos%2Fviar%2F89.pdf&amp;rct=j&amp;q=Bases+de+Datos+de+Im%C3%A1genes%3A+Arquitectura+de+los+Sistemas+de+Recuperaci%C3%B3n+&amp;ei=yPJRS5bAAYT34AbZ3fzICA&amp;usg=AFQjCNFdz2qzt1tarKAx7jldp-JFKfEliQ"><em>Bases de Datos de Imágenes</em>: <em>Arquitectura de los Sistemas de&#8230;</em></a><br />
</span></span></p>
<h3>1.1. Estado del Arte</h3>
<p>Al tratarse de un área de gran importancia por su estrecha relación con el mundo de los buscadores y sistemas de recomendación se han realizado numerosas investigaciones al respecto. Ya en los ochenta se comenzó a referenciar los sistemas de bases de datos de imágenes como hacen H. Tamura y Yokoya [2] en su análisis de tendencias o la pregunta que enuncian Chang y Hu [1] <em>Sistemas de Información de Imágenes: ¿Dónde vamos desde aquí?.</em> Estos estudios muestran la fuerte necesidad de arquitecturas y algoritmos capaces de indexar y recuperar imágenes de forma rápida y segura sin consumos elevados de tiempo y coste de proceso.</p>
<p><span id="more-63"></span>A principios del año 2000 se realizan las primeras recopilaciones de investigaciones y análisis de tendencias en este área [3,4,5] comienzan algunas a consolidarse como tendencias fuertes.</p>
<p>Sin duda uno de los mejores y más completos <em>Survey</em> del momento es el realizado por la Universidad del estado de Pennsylvania en el que Ritendra Datta, Dhiraj Joshi y Jia Li analizan en profundidad las últimas ideas, influencias y tendencias. [8] De obligada lectura para aquellos que quieran adentrarse en esta disciplina.</p>
<p>En la actualidad se pueden encontrar dos líneas de investigación principales en lo que a sistemas de recuperación de imágenes por contenido se refiere. Su diferencia radica en la arquitectura que determina los algoritmos de almacenamiento y recuperación.</p>
<p>La primera comprende aquellas aplicaciones capaces de procesar imágenes realizando diferentes transformaciones en tamaño, características de la imagen, espacios de color, calidades y algoritmos matemáticos que permitan destacar determinadas características. Se obtiene una imagen simbólica que deriva directamente de la imagen original. Esta aproximación a la solución se sirve de Bases de Datos de Imágenes que almacenan descripciones de las mismas que posteriormente permiten recuperar de una manera rápida las imágenes almacenadas.</p>
<p>La segunda corriente se encarga de extraer información de las imágenes y generar gráficos descriptivos como histogramas y otros, utilizando estos como índice para su posterior búsqueda.</p>
<p>En ambas se pueden observar diferentes niveles de abstracción al tratarse de enfoques aparentemente distintos. Ambos presentan una característica común, el uso de bases de datos de imágenes, sin embargo existen diferentes categorías que se explican a continuación.</p>
<h3>1.2. Categorías de bases de datos de imágenes</h3>
<p>La primera categorización de bases de datos de imágenes realizada por Timothy Arndt [9] quien dividió los diferentes sistemas por su funcionalidad. Estableció dos categorías principales y subcategorías:</p>
<ul>
<li>Bases de datos de imágenes que se centran en la recuperación de imágenes a partir de una serie de requisitos entre todas las almacenadas:
<ul>
<li>Automatización de Oficinas</li>
<li>Sistemas de información médica.</li>
<li>Aplicaciones de visión artificial que requieran medidas de similitud.</li>
</ul>
</li>
<li>Bases de Datos de Imágenes que se ocupan de obtener información a partir de una única imagen.
<ul>
<li>Sistemas de Información Geográfica (GIS).</li>
<li>Aplicaciones de Visión Artificial que requieran la interpretación de imágenes.</li>
</ul>
</li>
</ul>
<p>La primera clasificación obtendría como resultado a una consulta un conjunto de imágenes similares a la que se introdujo como entrada.</p>
<p>La segunda clasificación daría como resultado un conjunto de características de la imagen que tras ser analizada se convierte en información útil relacionada con el campo de conocimiento en el que se encuentra la imagen.</p>
<p>Algunos sistemas utilizan los dos modos de funcionamiento con el fin de obtener mayor información sobre la imagen de entrada.</p>
<h2>2. Clasificación de los sistemas de bases de datos de imágenes</h2>
<h3>2.1. Sistemas sencillos de bases de datos de imágenes</h3>
<p>La técnica más utilizada en la actualidad para integrar imágenes en bases de datos sencillas consiste en almacenarlas junto con metadatos asignados por operadores humanos. [10]  Se basan en atributos o sistemas de texto libre [11] pero presentan grandes limitaciones en lo que a búsquedas por contenido se refiere. En los siguientes párrafos se exponen las características de estos sistemas de manera breve por considerarse obsoletas.</p>
<h3>2.1.1. Sistema de almacenamiento secuencial no estructurado</h3>
<p>Esta fue la primera solución adoptada para mantener conjuntos de imágenes almacenadas y poder acceder a ellas [11,12]. El sistema genera una pequeña muestra de cada imagen. Esta se genera al insertar una nueva imagen en la BBDD. Cuando se quiere recuperar una imagen se genera la muestra de esta imagen y se realiza una búsqueda secuencial.</p>
<p>Se trata de un mecanismo poco eficiente en colecciones grandes. Útil para pocas imágenes precargadas.</p>
<h3>2.1.2. Sistema basado en atributos</h3>
<p>Se trata de un SGBD convencional en el que en forma de tupla se insertan los atributos  y la imagen en formato binario. Los atributos pueden ser palabras, variables binarias, numéricas o lo que se considere más oportuno en función del tipo de atributo.</p>
<p>La estructuración de esta BD se puede realizar de múltiples maneras. Así como el mecanismo de indexado.</p>
<p>Este tipo de BBDD no permite realizar consultas basadas en contenido de una manera cómoda.  Se utiliza para resolver problemas determinados muy cerrados, concretos y en colecciones de escaso tamaño.</p>
<h3>2.1.3.  Sistemas de texto libre</h3>
<p>Como su propio nombre indica se almacena la imagen junto a una descripción manual de la imagen. Su principal utilidad consiste en incluir imágenes en textos a partir de una descripción. Sin embargo gran cantidad de autores tachan este sistema de limitado y poco eficiente en sus trabajos [10,11,13,14]. Las limitaciones más comúnmente señalas son:</p>
<ol>
<li>La búsqueda depende de las palabras clave. Las definiciones pueden ser escasas o no contener estas palabras.</li>
<li>Hay propiedades de imágenes que son muy complicadas de describir, por no decir imposibles. Por ejemplo, ¿Cómo describiría un símbolo?. Una reflexión interesante sobre el tema se puede encontrar en [15].</li>
<li>No existe vocabulario comúnmente aceptado para describir imágenes.</li>
</ol>
<p>Existen más limitaciones pero no se ha considerado oportuno indicarlas en este documento.</p>
<h3>2.2. Sistemas de recuperación de imágenes basados en el contenido</h3>
<p>Autores como Gong [10] opinan que la solución a los problemas anteriormente descritos se encuentra en métodos automáticos de procesado de imágenes que permitan almacenar el contenido con anotaciones objetivas, generales, comprensivas y procesables.</p>
<p>La mayoría de los investigadores está de acuerdo con el concepto de “Bases de datos de imágenes inteligentes” pero este concepto es hoy en día ciencia ficción. Queda mucho por investigar en visión por computador antes de llegar a este punto. Sin embargo la meta está clara y parece un punto de unión entre los investigadores aunque existan claro está varias líneas de investigación en sentidos diferentes.</p>
<p>Los sistemas actuales de recuperación de imágenes basados en contenido ofrecen una solución para encontrar imágenes en función de sus propiedades. Se emplean para ello características de bajo nivel como los colores, formas y texturas, que puedan ser extraídas de manera automática. [16,17,18].</p>
<p>Estos sistemas se utilizan para recuperar imágenes mediante un esbozo de la imagen que se desea encontrar. La ventaja de estos sistemas radica en la facilidad a la hora de extraer características ya que se trata de operaciones entre pixels.</p>
<p>El  problema que presentan estos sistemas es que no permite realizar consultas a nivel conceptual como los sistemas sencillos.</p>
<h3>2.2.1. Sistemas basados en color</h3>
<p>Estos sistemas se basan en la presencia del color en la imagen para describir el contenido de la misma. Lo mas habitual es utilizar histogramas. Dependiendo del autor encontramos diferentes opiniones respecto al número de histogramas en función de las regiones o espacios de color como por ejemplo HSV [19], HSI [20], RGB, YIQ o LAB [11].</p>
<h3>2.2.2. Sistemas basados en textura</h3>
<p>Existen dos grandes grupos: los basados en características heurísticas que intentan cuantificar y generar patrones para definir texturas [11] y los que aplican técnicas de procesamiento de señales o <em>wavelets </em>[21].</p>
<p><em> </em></p>
<h3>2.2.3. Sistemas basados en similitud espacial</h3>
<p>Este sistema se basa en las distancias generalmente euclídeas entre los elementos que se encuentran en la imagen. Por tanto la dificultad principal radica en la detección de los objetos y su correcta parametrización dentro de los marcos de la imagen. Evidentemente solo funciona si no se varía el ángulo, altura, distancia de la cámara a los objetos y la distancia entre los objetos. Las limitaciones de este algoritmo son evidentes pese a que en situaciones determinadas puede funcionar perfectamente. [22]</p>
<h3>2.2.4. Sistemas basados en forma</h3>
<p>Utilizar descriptores de contorno o de región de objetos de una imagen permite realizar búsquedas sobre los elementos almacenados previamente [23].  Otros sistemas se basan en una serie de características estructurales obtenidas a partir de un mapa de bordes o contornos. Se suelen utilizar para realizar búsquedas a partir de esbozos o ejemplos.</p>
<h3>2.2.5. Otros sistemas</h3>
<p>Es habitual que surjan diferentes líneas de investigación y como casi siempre las primeras son fusiones de las anteriores. También se suele modificar la arquitectura o los algoritmos de almacenamiento o procesado, utilizando por ejemplo redes neuronales para realizar el almacenaje en lugar de sistemas de bases de datos o incluso estructuras complejas de datos [6,7].</p>
<p>Se pueden por tanto utilizar múltiples enfoques a la hora de implementar un sistema de búsqueda de imágenes basado en contenido dependiendo del problema concreto que se pretenda solucionar y fusionando los algoritmos más oportunos.</p>
<h2>3. Bibliografía</h2>
<p>[1] <em>Chang, S. K. and Hu, A. (1992) “Image Information Systems: Where Do We Go From Here?” .IEEE Transactions on Knowledge and Data Engineering, vol. 5, n.4, pp. 431-442.</em></p>
<p>[2] <em>Tamura, H. and Yokoya, Y. (1984) “Image database Systems: A survey”. Pattern Recognition, vol. 17, n. 1, pp. 29-43. </em></p>
<p>[3] <em>Veltkamp, R.C. and Tanase, M. (2002)“A survey in content-based image retrieval systems”, in Marques, O and Furht, B (eds). Content-Based Image and Video Retrieval, pp. 47-101. Boston. Kluwer Academic Publishers. </em></p>
<p>[4] <em>Rui, Y., Huang, T.S. and Chang, S.F. (1999) “Image retrieval: current techniques, promising directions and open issues”, Journal of Visual Communication and Image Representation, vol. 10, n. 1, pp. 39-62.</em></p>
<p>[5] <em>Johansson, B. (2000) “A survey on: Contents Based Search in Image Databases”, Technical report Linköping University [Online].</em></p>
<p>Disponible copia digital en:</p>
<p><a href="http://www.isy.liu.se/cvl/Projects/VISIT-bjojo/">http://www.isy.liu.se/cvl/Projects/VISIT-bjojo/</a></p>
<p>[6] <em>Swanberg, D., Weymouth, T. and Jain, R. (1992) “Content-based modeling in multimedia information systems”. Proc. of 1st International Conference on Information and Knowledge Management, Baltimore, November. </em></p>
<p>[7] <em>Yoo, H-W, Jang, D-S, Jung, S-H, Park, J-H. and Song, K-S. (2002) “Visual information retrieval system via content-based approach”, Patter Recognition, n. 35, pp. 749-769</em></p>
<p>[8] <em>Ritendra Datta, Dhiraj Joshi, Jia Li and James Z. Wang, &#8220;Image Retrieval: Ideas, Influences, and Trends of the New Age,&#8221; ACM Computing Surveys, vol. 40, no. 2, article 5, pp. 1-60, 2008.</em></p>
<p>Disponible copia digital en:</p>
<p><a href="http://infolab.stanford.edu/%7Ewangz/project/imsearch/review/JOUR/datta.pdf">http://infolab.stanford.edu/~wangz/project/imsearch/review/JOUR/datta.pdf</a></p>
<p>[9] <em>Arndt T. (1990) “A Survey of Recent</em><em> </em><em>Research in Image Database</em><em> </em><em>Management”. Proceedings of the</em><em>1990 IEEE Workshop on Visual</em><em> </em><em>Languages. October 4-6,pp. 92-97.</em><em> </em></p>
<p>[10] <em>Gong, Y. (1998) Intelligent image databases. Towards Advanced Image Retrieval. Kluwer Academic Publishers.</em></p>
<p>[11] Hermes, Th., Klauck, Ch., Kreyβ, J. and Zhang, J. (1995) “Image Retrieval for information systems”. Storage and Retrieval for Image and Video Databases III., Wayne Niblack, Ramesh C. Jain, Editors, Proc. SPIE 2420, pp. 394-405.</p>
<p>[12] <em>Chen, J.Y. and Bouman, C.A. (1999) “Active browsing using similarity pyramids”. Storage and Retrieval for Image and Video Databases VII, Minerva M. Yeung, Boon-Lock Yeo, Charles A. Bourman, Editors, Proceedings of SPIE, vol. 3656, pp. 144-154.</em></p>
<p>[13] <em>Niblack, W., Barber, R., Equitz, W., Flickner, M., Glasman, E., Petrovic, D. and Yanker, P. (1993) “The QBIC project: Querying images by content using color, texture and shape”. Wayne Niblack editor, Storage and Retrieval for Image and Video Databases, pp. 173-187.</em></p>
<p>[14] Liang, K.Ch. and Kuo, C.C. J. (1998) “Implementation and Performance Evaluation of A Progressive Image Retrieval System”. Storage and Retrieval for Image and Video Databases VI., Ishwar K. Sethi, Ramesh C. Jain, Editors, Proc. SPIE 3312, pp. 371-382.</p>
<p>[15] <em>Dyson, M. C. (1992) “How do you describe a symbol? the problems involved in retrieving symbols from a database”. Information Services and Use, nº 76, pp. 12-65.</em></p>
<p>[16] <em>Flickner, M., Sawhney, H., Niblack, W., Ashley, J., Huang, Q., Dom, B., Gorkani, M., Hafner, J., Petkovic, D. L., Steele, D. and Yanker, P. (1995) “Query by image and video content: the QBIC system”. IEEE Computer, vol. 28, nº. 9, pp.23-32.</em></p>
<p>[17] <em>Bach, J.R., Fuller, C., Gupta A., Hampaur, A., Horowitz, B., Humphrey, R., Jain, R., Shu, C. (1996) “The Virage image search engine: an open framework for image management”, SPIE Digital Image Storage and Archiving Systems, vol. 2670, February, pp. 76-87. </em></p>
<p><em> </em></p>
<p>[18] <em>Smith, J. R. and Chang, S. F. (1996)</em><em> </em><em>“VisualSEEk: a fully automated</em><em> </em><em>content-based image query system”.</em><em> </em><em>Proc. The Fourth ACM International</em><em> </em><em>Multimedia Conference, November, pp.</em><em> </em><em>87-98.</em><em> </em><em>vol. 3656, pp. 41-48.</em><em> </em></p>
<p>[19] <em>Swain, M. J. (1993) “Interactive indexing into image database”. In Storage and Retrieval for Image and Video Databases, vol. 1908, pp. 95-103</em></p>
<p>[20] <em>Sethi, I.K., Coman, I., Day, B., Jiang, F., Li,  D., Segovia-Juarez,  J., Wei, G. and You, B. (1998) “Color-WISE: A system for image similarity retrieval using color”. Storage and Retrieval for Image and Video Databases VI., Ishwar K. Sethi, Ramesh C. Jain, Editors, Proc. SPIE 3312, pp. 140-149. </em></p>
<p>[21] <em>Manjunath, B.S. and Ma, W.Y. (1996)</em><em> </em><em>“Texture features for browsing and</em><em> </em><em>retrieval of image data”. IEEE Trans. on</em><em> </em><em>PAMI Special Issue on Digital Libraries.</em><em> </em><em> </em></p>
<p>[22] <em>Sciascio, E., Donini, F.M. and Mongiello, M. (2002) “Spatial layout representation for query-by-sketch content-based image retrieval”, Pattern Recognition Letters, n. 23, pp. 1599- 1612.</em></p>
<p>[23] <em>Tao, Y. and Grosky, W.I. (1999) “Delaunay triangulation for image object indexing: a novel method for shape representation”. Storage and Retrieval for Image and Video Databases VII, inerva M. Yeung, Boon-Lock Yeo, Charles A. Bourman, Editors, Proceedings of SPIE, vol. 3656, pp. 631-642.</em></p>
<p>[24] <em>T. Zielke, M. Brauckmann, W. Von Seelen (1993) Intensity and edge-based symmetry detection with application to car-following. CVGIP: Image Understanding 58 (2) 177-190.</em></p>
<p>[25] <em>N. M. Charkari, H. Mori (1995) Visual vehicle detection and tracking based on the sign pattern. Advanced Robotics 9 (4) 367-382. </em><em> </em></p>
<p>[26]<em> A. Broggi, M. Bertozzi, A. Fascioli, C. Guarino, A. Piazzi (2000) Visual perception of obstacles and vehicles for platooning. IEEE Transactions on Intelligent Transportation Systems 1 (3) 164-</em><em> </em><em>176.</em></p>
<p>[27] <em>ND Matthews, PE An, JM Roberts, CJ Harris (1998) A neurofuzzy approach to future intelligent driver support systems. Journal of Automobile Engineering 212, 43-58 </em><em> </em></p>
<p>[28]<em> Csurka, G., Bray, C., Dance, C., Fan, L. (2004)  Visual categorization with bags of key points. In: Workshop on Stat. Learning in Computer Vision, ECCV. 1-22.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=63</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Descripción Formal &#8211; Caso Concreto</title>
		<link>http://www.openvov.com/blog/?p=58</link>
		<comments>http://www.openvov.com/blog/?p=58#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:23:57 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Caso concreto]]></category>
		<category><![CDATA[CBIR]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Vision por computador]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=58</guid>
		<description><![CDATA[Se pretende diseñar y desarrollar un sistema capaz de determinar la existencia de una carátula de CD en una imagen, obtenida por un dispositivo móvil. Así como determinar el autor, el título del disco, el estilo musical e incluso reproducir las pistas del CD. Utilizando para ello un sistema de recuperación de información basado en [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Se pretende diseñar y desarrollar un sistema capaz de determinar la existencia de una carátula de CD en una imagen, obtenida por un dispositivo móvil. Así como determinar el autor, el título del disco, el estilo musical e incluso reproducir las pistas del CD. Utilizando para ello un sistema de recuperación de información basado en contenido (CBIR).  Este sistema recibirá tan solo la parte de la imagen en la que se encuentre la carátula. El algoritmo de detección de la carátula de CD y el aislamiento de la misma consistirá en la etapa de preprocesado de la imagen.</p>
<p align="justify">Un sistema CBIR coherente almacena exclusivamente información del mismo tipo. Si se trata de carátulas de CD contendrá información exclusiva sobre carátulas de CD. Por tanto el resto de objetos que aparezcan en la imagen contaminarán los resultados. Para obtener información fiable del sistema CBIR se le deben suministrar imágenes que única y exclusivamente contengan carátulas de CD.</p>
<p align="justify">Se ha tomado como caso concreto la detección y aislamiento de carátulas de CD en imágenes obtenidas por un dispositivo portátil por considerarse un reto c<strong>oncreto, complicado, comprensible, fácilmente acotable, usable </strong>y<strong> útil.</strong></p>
<ul>
<li><strong>Concreto:</strong> se trata de un cuadrado de doce por doce centímetros, su tamaño no varía excepto por la perspectiva y es totalmente plano.</li>
<li><strong>Complicado:</strong> existen millones de carátulas de CDs, algunas de ellas muy parecidas. Por otro parte es relativamente complicado detectar un objeto concreto en una imagen, asilarlo y determinar si es lo que se está buscando basándose tan solo en el tamaño y sin tener en cuenta color, textura y formas interiores.</li>
<li><strong>Comprensible:</strong> pese a tratarse de sistemas complejos para oídos inexpertos es fácil comprender su uso así como su utilidad.</li>
<li><strong>Facilmente acotable:</strong> se pueden limitar las colecciones de carátulas de CDs para delimitar la complejidad. Las imágenes de entrada pueden ser tanto o tan poco complicadas como se considere oportuno. El desarrollo puede ser de complejidad gradual creciente.</li>
<li><strong>Usable:</strong> al tratarse de un dispositivo móvil de uso común se podrá utilizar en cualquier lugar cuando se posea una conexión.</li>
<li><strong>Útil:</strong> para las personas con discapacidad visual diferenciar un CD de otro es realmente complicado si no lo han marcado previamente pues no suelen contener caracteres braille.</li>
</ul>
<p align="justify">De manera general la arquitectura del sistema debe permitir la inclusión de nuevas formas a detectar y debe ser sencillo e intuitivo incluir nuevos objetos a detectar. Se pretende dotar de especial importancia al diseño, la modularidad y la reutilizabilidad serán factores críticos en esta inminente etapa.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Perdido entre papers&#8230;</title>
		<link>http://www.openvov.com/blog/?p=55</link>
		<comments>http://www.openvov.com/blog/?p=55#comments</comments>
		<pubDate>Wed, 06 Jan 2010 14:43:50 +0000</pubDate>
		<dc:creator>Luis Ignacio Diaz del Dedo</dc:creator>
				<category><![CDATA[Documentación]]></category>
		<category><![CDATA[Noticia]]></category>

		<guid isPermaLink="false">http://www.openvov.com/blog/?p=55</guid>
		<description><![CDATA[He andado un poco perdido, quizá abrumado por la tarea de recolectar e intentar leer y comprender todos los papers. He estado un poco desanimado por tener la vacaciones ocupadas con el Master. Pero parece que ya me he centrado y he organizado las ideas. Creo que lo único que necesitaba era descansar bien y [...]]]></description>
			<content:encoded><![CDATA[<p>He andado un poco perdido, quizá abrumado por la tarea de recolectar e intentar leer y comprender todos los papers. He estado un poco desanimado por tener la vacaciones ocupadas con el Master.</p>
<p>Pero parece que ya me he centrado y he organizado las ideas. Creo que lo único que necesitaba era descansar bien y organizar primero mis ideas. Estoy trabajando y creo que voy bien, pero esto no ha echo más que empezar&#8230;</p>
<p>He perdido mucho tiempo y ahora tengo que recuperarlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.openvov.com/blog/?feed=rss2&#038;p=55</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
