martes, 27 de diciembre de 2011

Integración de ITK en Visual Studio 2008


Integración de ITK en Visual Studio 2008

A tener en cuenta: trabajamos en sistemas de 32 bits.

1. Descarga de Programas


 A) ITK : www.itk.org

        - Resources > Download : "InsightToolkit-3.20.0.zip" (hosted at SourceForge)
        - Descomprimir el fichero '.zip'.
La estructura de directorios que contiene se copia en "C:\...\Mis documentos\librerias\InsightToolkit-3.20.0



 B) CMAKE : 
www.cmake.org 


        - Resources > Download : 
Binary distributions: "cmake-2.8.4-win32-x86.exe" Windows (Win32 Installer)



2. Compilación de ITK con CMake 

Se instala 'CMake' y se compila ITK con dicho programa.
En el directorio origen está el fichero “CMakeLists.txt” "C:\Documents and Settings\...\Mis documentos\librerias\ InsightToolkit-3.20.0".
El directorio destino será: "C:\Documents and Settings\...\Mis documentos\librerias\ITK_COMPILADAS"
Opciones CMake: build examples ->off (para que tarde menos)

Una vez pre-compilado con CMake, hay que compilarlo con Visual. Para ello hacemos doble click en el fichero "C:\Documents and Settings\...\Mis documentos\librerias\ITK_COMPILADAS\ ITK.sln" con lo que se abre Visual, y ahora hay que compilar en modo DEBUG y RELEASE (primero uno y después otro)

Para compilar, pinchamos con el botón derecho del ratón en 'ALL_BUILD', y seleccionamos “Generar”. Esto tarda un rato…
Una vez concluido, las librerías (ficheros .lib que habrá que añadir en los proyectos) se encuentran en
"C:\Documents and Settings\...\Mis documentos\librerias\ITK_COMPILADAS\bin\Debug" y "C:\...\Release"

3. Creación de variables de entorno

Se van a definir variables de entorno para que al usar los proyectos en distintos equipos, encuentren las librerías independientemente de donde esté situado el directorio “Mis documentos\librerías”.

Debemos seguir el siguiente procedimiento:
"Inicio Panel de control Sistema (en vista clásica) Opciones avanzadas Variables de entorno"

PATH_ITK_INCLUDES
C:\Documents and Settings\...\Mis documentos\librerias\InsightToolkit-3.20.0
PATH_ITK_LIBS
C:\Documents and Settings\...\Mis documentos\librerias\ITK_COMPILADAS


4. Configuración para cada proyecto en Visual Studio 2008

Tras abrir 'VS' :
Archivo > Nuevo Proyecto > Visual C++ > Proyecto Win32
Mi consejo es que se cree un proyecto vacío, no dará problemas si tenemos claros los fundamentos de la estructura de los archivos '.h' y '.cpp'.

Y ahora es el momento de modificar las propiedades del proyecto para poder trabajar con 'ITK'. Todos los cambios que se indican a continuación habrá que hacerlo tanto en modo 'Debug' como en modo 'Release'.

 A) ' Propiedades del proyecto > Propiedades de "Nombre del proyecto" > Propiedades de Configuración > Vinculador > General > Directorios de bibliotecas adicionales'

En modo Release escribimos:
            .\Release
            $(PATH_ITK_LIBS)\bin\Release
En modo Debug escribimos:
            .\Debug
                                   $(PATH_ITK_LIBS)\bin\Debug

 B) ' Propiedades del proyecto > Propiedades de "Nombre del proyecto" > Propiedades de Configuración > Vinculador > Entrada > Dependencias adicionales'

Añadimos esta serie de '.lib' , al añadirlas, tener la precaución de no escribir los punto y coma, ya que provocarán un error : 

kernel32.lib; user32.lib; gdi32.lib;winspool.lib; shell32.lib; ole32.lib; oleaut32.lib; uuid.lib; comdlg32.lib; advapi32.lib; glu32.lib;opengl32.lib; imm32.lib; winmm.lib; ws2_32.lib; ITKAlgorithms.lib; itkNetlibSlatec.lib;ITKNumerics.lib; ITKBasicFilters.lib; ITKIO.lib; ITKNrrdIO.lib; itkgdcm.lib; itkjpeg12.lib;itkjpeg16.lib; itkopenjpeg.lib; snmpapi.lib; rpcrt4.lib; itkpng.lib; itktiff.lib; itkjpeg8.lib; ITKSpatialObject.lib; ITKCommon.lib; itkvnl_inst.lib; itkvnl_algo.lib; itkv3p_netlib.lib; itkvnl.lib; itkvcl.lib; ITKMetaIO.lib; itksys.lib; comctl32.lib; wsock32.lib; ITKDICOMParser.lib; ITKEXPAT.lib; ITKniftiio.lib; ITKznz.lib; itkzlib.lib;

C) ' Herramientas > Opciones > Proyectos y soluciones > Directorios de VC++' . Y dónde pone "mostrar directorios para", elegir : "Archivos de inclusión , como se ve en la siguiente imagen.

Descripción: http://4.bp.blogspot.com/-xt8VsKdkcBw/Tuh_BX1KZaI/AAAAAAAAADo/Ad2lsZbtznc/s400/imagen1.png


 En este sitio tienen que estar los siguientes directorios: 

$(PATH_ITK_LIBS)\Utilities\gdcm
$(PATH_ITK_INCLUDES)\Utilities\gdcm\src
$(PATH_ITK_INCLUDES)\Code\BasicFilters
$(PATH_ITK_INCLUDES)\Code\IO
$(PATH_ITK_LIBS)\Utilities\vxl\core
$(PATH_ITK_INCLUDES)\Utilities\vxl\core
$(PATH_ITK_LIBS)\Utilities
$(PATH_ITK_LIBS)\Utilities\vxl\vcl
$(PATH_ITK_INCLUDES)\Utilities\vxl\vcl
$(PATH_ITK_LIBS)
$(PATH_ITK_INCLUDES)\Code\Common
$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSdkDir)\include
$(FrameworkSDKDir)include
$(PATH_ITK_INCLUDES)\Code\Algorithms
$(PATH_ITK_INCLUDES)\Code\Review


Espero que esta primera entrada os haya servido de ayuda, espero vuestros comentarios con sugerencias, opiniones y dudas!

Antonio Gómez Barquero

8 comentarios:

  1. Saludos
    En el punto 2, ¿donde hay que compilar en DEBUG y luego en RELEASE?

    Puede describirme detalladamente estos pasos.

    Gracias.

    ResponderEliminar
  2. Hola!

    La precompilación de Cmake se realiza una vez. Después al hacer doble click en el archivo 'ITK.sln' se abre Visual Studio 2008, es ahí dónde tienes que hacer la compilación en modo Debug y Release.

    Espero haber respondido a tu pregunta.

    Un saludo

    ResponderEliminar
    Respuestas
    1. Hola de nuevo...

      Llevo casi 3 semanas tratando de correr un ejemplo de ITK pero los resultados no han sido favorables, por una u otra razón, ¿Podría poner un ejemplo sencillo de como saber si está correctamente las librerías?

      De antemano gracias.

      Eliminar
    2. Puedes decirme en que punto te encuentras? has realizado la configuración que aquí pone en Visual Studio? Has hecho un proyecto Win32 y escribirlo como si fuera c++ pero con una clase nueva en la que definir los objetos en el header? Estas siguiendo el manual de ITK? --> www.itk.org/ItkSoftwareGuide.pdf

      Eliminar
    3. Saludos,

      Así es, de nuevo estoy compilando las librerías, tiene algún correo en el cual pueda mandarle las pantallas para indicarme si lo estoy haciendo mal, porque hay cosas que no encuentro, mi correo es payasito97@hotmail.com

      Gracias..

      Eliminar
    4. Saludos, envié el archivo, no lo ha revisado?

      Estoy interesado en seguirle para proporcionar un tutorial y aclarar los errores posibles para darle un seguimiento a dicha herramienta.

      De antemano gracias.

      Eliminar
  3. Hola, hemos compilado las Aplicaciones de ITK con el CMake 2.8 para visual studio c++ 2008,pero la aplicacion de DicomImageViewer no nos la compila en el conjunto, y si intentamos compilarla de forma individual nos sale este error:

    CMake Error at CMakeLists.txt:29 (ITK_DISABLE_FLTK_GENERATED_WARNINGS):
    Unknown CMake command "ITK_DISABLE_FLTK_GENERATED_WARNINGS".

    ¿Como poemos solucionarlo?

    Gracias, Un Saludo.

    ResponderEliminar
  4. Estoy realizando un PFC con ITK, Qt y VS2008, tengo algún problema.

    Agradecería poder hablar con usted.

    adcogra@teleco.upv.es

    ResponderEliminar