Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

domingo, 26 de julio de 2015

Compilar e instalar Orfeo Toolbox 5.0 en Ubuntu


Orfeo Toolbox (OTB) es una biblioteca para el procesamiento de imágenes de teledetección (por ejemplo imágenes por satélite) desarrollada por el Centro Nacional de Estudios Espaciales Frances (CNES).


Antes de empezar debemos instalar cmake (y opcionalmente cmake-gui), así como las librerias zlib, boost, curl y QT4:

sudo apt-get install cmake cmake-gui zlib1g-dev libboost-all-dev libcurl4-openssl-dev libqt4-dev libqt4-gui g++ libtinyxml2.6.0

Ahora descargamos y descomprimimos los sources de la última versión (5.0.0) de OTB: http://sourceforge.net/projects/orfeo-toolbox/files/OTB-5.0.0.tgz/download

Orfeo requiere muchas dependencias para funcionar (GDAL, OSSIM, etc) pero por suerte para facilitarnos la vida el paquete incluye un modo de compilación llamado Super Build. Para ello tan solo tenemos que entrar en la carpeta Super Build y configurar y generar los makefiles que nos permitirán compilar e instalar la librería para lo que escribimos:

cmake -G "Unix Makefiles"

Después debido a que han movido el repositorio de MuParser y aun no han actualizado (en la versión 5.0.0) los makefiles, debemos editar el archivo ./SuperBuild/CMake/External_muparser.cmake, cambiando las línea:

URL "http://downloads.sourceforge.net/project/muparser/muparser/Version%202.2.3/muparser_v2_2_3.zip"
URL_MD5 9de40ec1dab5bd2787ee344fce5846ad


por

URL "https://www.orfeo-toolbox.org/packages/muparser_v2_2_4.zip"
URL_MD5 ab5d86af1c75e3946314e76e6018f78d


Y compilamos e instalamos

sudo make

Esperamos un buen rato y listo. En el próximo post cómo crear el primer programa con OTB.

lunes, 6 de julio de 2015

Compilando OpenCV 3.0 en MacOS/Linux

OpenCV es una biblioteca libre de visión artificial que nos permite realizar desde un procesado simple de imágenes hasta la detección de caras y objetos.

Recientemente se ha publicado su versión 3.0 que incluye entre otras novedades:

  • Más de 1500 parches.
  • Reconocimiento de texto.
  • Integración con la librería VTK (visualizaciones 3D).
  • Uso transparente de GPU en varios algoritmos.
  • Nuevos algoritmos usados en fotografía (HDR, inpainting, edge-aware filters, superpixels, …)
  • La documentación usa ahora Doxygen.

A continuación os dejo una serie de pasos para poder utilizar todas estas funcionalidades en nuestros programas tanto en MacOS como en Linux:

Paso 0. Descargar lo que necesitamos

Para trabajar con ella en primer lugar debemos compilarla e instalarla en nuestro sistema. Para ello necesitamos descargar:

. Código fuente OpenCV para UNIX/MacOs
. Descargar e instalar CMake
. En MacOs también necesitaremos tener instalado XCode.

Paso 1. Configure y Generate

Después solo necesitamos abrir el interfaz de CMake, seleccionar el directorio donde hallamos descomprimido OpenCV, el directorio donde queramos generar los makefiles  y configurar y generar los makefiles. El interfaz de CMake nos permite también seleccionar opciones adicionales. Después pulsamos Configure y seleccionamos el compilador de UNIX (para que nos genere los makefiles) y si todo va bien CMake se encargará de buscar automáticamente las referencias a las librerías adicionales necesarias.

Si todo va bien podremos generar el proyecto pulsando Genreate. Si algo va mal tendremos que configurar a mano las rutas a las librerías que falten.


Paso 2. Make install

Así de simple, abrimos el terminal, vamos a la carpeta en la que hallamos generado nuestros makefiles y escribimos:

$ make install

Paso 3. Probarlo

Para ello escribimos un sencillo programa que muestra la captura de nuestra web cam. Para ello en primer lugar escribimos el programa:

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
    VideoCapture cap(0); // Abre la captura de la webcam. 
    namedWindow("Captura",CV_WINDOW_AUTOSIZE); // Crea una ventana
    while (1) {
    Mat frame;
        bool bSuccess = cap.read(frame); // realiza captura
        imshow("Captura", frame); 
  if (waitKey(30) == 27) // Lee la entrada y si pulsamos Esc sale del programa
        {
            cout << "esc key is pressed by user" << endl;
            break; 
        }
    }
    return 0;
}

Por otro lado generamos un archivo CMakeLists.txt para generar los makefiles para este programa del mismo modo que lo hicimos para compilar OpenCV:

cmake_minimum_required(VERSION 2.8)

project( TestCV )
find_package( OpenCV REQUIRED )
add_executable( TestCV cvtest.cpp )
target_link_libraries( TestCV ${OpenCV_LIBS} )


Y finalmente los generamos y compilamos usando make. El resultado obtenido será similar (o mejor) a:




martes, 16 de diciembre de 2014

Cambiar resolución Ubuntu 14.04 en VirtualBox

Desde hace poco trabajo en OsX y me ha tocado instalar una maquina virtual en Linux para trabajar en un proyecto. Pero me he encontrado con el primer problema y es que la resolución por defecto es de 640 x 480 y así no hay quien trabaje. Por suerte siguiendo unos pocos pasos podemos solucionar este problema:
  1. Desactiva el soporte 3D en la configuración gráfica de la máquina virtual.
  2. Ejecutar esto:
    sudo apt-get update  
    sudo apt-get upgrade  
    sudo apt-get install dkms  
    sudo apt-get install build-essential
    
  3. En la maquina virtual dentro de los dispositivos añadir la imagen de cd  de Guest Additions (menu Devices-Insert Guest Additions CD (Host+D)). Con ello aparecerá un mensaje indicando si queremos continuar con la instalación. Obviamente continuamos y listo.
  4. Reinicia Ubuntu.
  5. Ahora la resolución de la pantalla se modificará de manera automática.


    * Si durante la instalación de los Guest Additions os aparece un warning indicado que no se ha reconocida la versión de X Windows del tipo:

    Warning: unknown version of the X Window System installed.  Not installing
    X Window System drivers.


    La instalación no funcionará. Se debe a que probablemente estéis usando una versión antigua de VirtualBox. Actualizarlo y volver a instalar las Guest Additions debería solucionar el problema. 

    Fuente: http://askubuntu.com/questions/240745/how-do-i-get-a-larger-screen-resolution-in-virtualbox-on-mac-os-x

miércoles, 13 de noviembre de 2013

Ejecutar un script sh (o comando) cada cierto tiempo

Tan simple como:

$watch -t -n secs ./script.sh

donde secs es el intervalo de tiempo en segundos cada el que queremos ejecutar script.sh. Para ejecutar un comando simple basta con substituir el script por el comando deseado, por ejemplo:

$watch -n 10 ps -l

para listar los procesos activos cada 10 segundos. Si queremos ejecutar un comando compuesto deberemos añadir la opción -x o simplemente poner el comando entre comillas simples. Otras opciones bastante útiles son -d para resaltar los cambios en los resultados producidos entre ejecuciones o -t para evitar que se muestre la cabecera del programa.

miércoles, 26 de septiembre de 2012

Instalando openkinect en Fedora

Aunque actualmente existe un excelente SDK para Kinect no podremos utilizarlo en nuestro SO favorito, aka Linux. A continuación os dejo paso por paso todos los pasos para poder utilizar libfreenect en Fedora:

En primer lugar debemos instalar libusb

$yum install libusb1*

Y después todo esto aunque la mayoría espero que ya lo tengáis:

$yum install git cmake gcc gcc-c++ libXi libXi-devel libXmu libXmu-devel freeglut freeglut-devel

Después descargamos el código desde el repositorio GIT con en el directorio actual (así que os recomiendo crear un directorio para el proyecto)

$ git clone git://github.com/OpenKinect/libfreenect.git
 

Y ahora queda configurar la compilación:

 
$ cd libfreenect
$ mkdir build
$ cd build
$ ccmake ..

Una vez ejecutado el editor ccmake presionar c para configurar.
Debereis comprobar que la variable LIBUSB_1_INCLUDE_DIR es /usr/include/libusb-1.0  aunque deberia estar bien por defecto.
Pulsar intro para terminar.
Pulsar c para seguir la configuración.
Si todo esta bien hay que pulsar g que generara el fichero de configuración y terminara la operación.


Ahora queda construir todo e instalar:

$ cmake ..
$ make
$ sudo make install

Y listo.

Para probar si todo funciona podemos conectar nuestro kinect al puerto USB (recordar que tiene que ser un puerto 2.0 (si yo he estado un par de horas tratando de hacer que funcione en un USB 3.0)) e ir a la carpeta build y ejecutar el programa de ejemplo:

$ bin/glview

Ahora ya podemos empezar a utilizar la librería. Para ello solo tenemos que anadir la carpeta inlclude de la libreria que deberia estar por defecto en /usr/local/include/libfreenect/ y anadir al proyecto la libreria  freenect que deberia estar en /usr/local/lib64 (si usais una version de 64 bits de fedora).

Si al compilar os da un error parecido a "error while loading shared libraries: libfreenect.so.0.1: cannot open shared object file: No such file or directory" si vuestro sistema es de 32 bits debeis anadir el directorio a la path de librerias del sistema con:

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

o si contáis con Fedora de 64 bits:

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

Para más información: