• No se han encontrado resultados

Ecuación 6. Operador de Sobel (Flórez, 2011a) ,

2 MATERIALES Y MÉTODOS

2.3 Análisis y procesamiento de datos

2.3.5 Sincronización de las plataformas

Luego de la instalación de cada una de las herramientas mencionadas en los numerales anteriores, se procedió a seguir los siguientes pasos:

Primero se compila la librería ITK; para esto se debe utilizar CMake, el cual necesita de dos entradas: “Where is the source code” y “Where to build the binaries”. En la Figura 6 se presenta una imagen de la pantalla principal de Cmake.

En el primer espacio “Where is the source code” se coloca la dirección donde se encuentra la librería. En el segundo espacio “Where to build the binaries” se debe colocar la dirección de una carpeta nueva para crear los binarios compilados de ITK. Luego se oprime configure, donde saldrá una nueva ventana pidiendo el compilador que se desea utilizar; en este caso se usó Visual Studio. Finalmente se hace click en generate.

Figura 6. Compilación ITK con CMake

Al terminar este proceso, CMake ya ha convertido los archivos binarios en C++ a Visual C++. Se debe ir a la carpeta donde se encuentra la librería ITK compilada y se hace doble click en el archivo “ITK.sln”, esto abrirá el Visual Studio. En Visual Studio, en el proyecto “ITK.sln” se hace click derecho en “_ALL_BUILD_” y se procede a generar la compilación de la libreria. Este proceso puede demorar alrededor de dos (2) horas ya que se están creando todas librerías para poder usarse en cualquier proyecto. En la Figura 7 se presenta una imagen de la pantalla de este proceso.

Al realizar el proyecto es necesario implementar las direcciones de las librerías que se van a utilizar. Para esto, primero se hace click derecho en el nombre del proyecto nuevo y se ejecuta las propiedades, tal como se muestra en la Figura 8.

Figura 7. Creación de librerías en Visual Studio (Martinez, 2010).

Figura 9. Directorios de inclusión y bibliotecas adicionales (Martinez, 2010).

En la Figura 9 se muestran las dos (2) ventanas en donde se deben hacer las inclusiones de las bibliotecas. Las direcciones a añadir dependen de la versión del ITK descargado. En este caso se descargó la versión 3.16, por lo que las direcciones añadidas fueron las siguientes:

1. Directorios de inclusión adicionales: Dirección_ libreria_ ITK\Code\Algorithms Dirección_ libreria_ ITK\Code\BasicFilters Dirección_ libreria_ ITK\Code\Common Dirección_ libreria_ ITK\Code\IO

Dirección_ libreria_ ITK\Code\Numerics Dirección_ libreria_ ITK\Code\Numerics\FEM

Dirección_ libreria_ ITK\Code\Numerics\NeuralNetworks Dirección_ libreria_ ITK\Code\Numerics\Statistics

Dirección_ libreria_ ITK\Code\SpatialObject Dirección_ libreria_ ITK\nifti\znzlib

Dirección_ libreria_ ITK\nifti\niftilib Dirección_ libreria_ ITK\Utilities\vxl\core Dirección_ libreria_ ITK\Utilities\vxl\vcl

Dirección_ libreria_ ITK\Utilities\vxl\v3p\netlib Dirección_ libreria_ ITK\Utilities

Dirección_ libreria_ ITK\Utilities\DICOMParser Dirección_ libreria_ ITK\Utilities\expat

Dirección_ libreria_ ITK\Utilities\gdcm\src Dirección_ libreria_ ITK\Utilities\itkExtHdrs Dirección_ libreria_ ITK\Utilities\NrrdIO

Dirección_ libreria_ ITK\Utilities\MetaIO Dirección_ libreria_ ITK_Compilada\Utilities

Dirección_ libreria_ ITK_Compilada\Utilities\DICOMParser Dirección_ libreria_ ITK_Compilada\Utilities\expat

Dirección_ libreria_ ITK_Compilada\Utilities\gdcm Dirección_ libreria_ ITK_Compilada\Utilities\NrrdIO Dirección_ libreria_ ITK_Compilada\Utilities\vxl\core Dirección_ libreria_ ITK_Compilada\Utilities\vxl\vcl

Dirección_ libreria_ ITK_Compilada\Utilities\vxl\v3p\netlib

2. Directorios de las bibliotecas adicionales: TKStatistics.lib ITKFEM.lib ITKAlgorithms.lib itkNetlibSlatec.lib ITKNumerics.lib ITKBasicFilters.lib ITKIO.lib ITKNrrdIO.lib itkgdcm.lib itkjpeg12.lib itkjpeg16.lib itkopenjpeg.lib itkpng.lib itkti_.lib itkjpeg8.lib ITKSpatialObject.lib ITKCommon.lib itkvnl_inst.lib itkvnl_algo.lib itkv3p_netlib.lib itkvnl.lib itkvcl.lib ITKMetaIO.lib itksys.lib ITKDICOMParser.lib ITKEXPAT.lib ITKniftiio.lib ITKznz.lib itkzlib.lib

2.4 Análisis de Imágenes

En primer lugar se determinaron los parámetros de cada color que fueran necesarios para que se diferenciaran matemáticamente de los otros colores. Los descriptores empleados para segmentar los colores fue su composición de HSV. Esto se decidió tras determinar varios parámetros de cada color, y al comparar cada uno de estos se concluyó que el tinte era el parámetro que mejor los describía. Sin embargo, los rangos de este descriptor no eran los suficientemente distanciados entre los colores; de hecho, varios colores podían estar en el mismo rango.

Tabla 4. Rango de tinte (Hue) de cada color. Tamiz

(in) Color Hue Mínimo Hue Máximo

3/4" Azul Claro 141,7 190,5 1/2" Amarillo 23,4 56,7 3/8" Rojo 3,5 12,8 1/4" Naranja 12,8 21,3 No. 4 Gris 7,1 42,5 No. 8 Azul 191,3 251,5 No. 16 Negro No. 30 Café 10,6 21,3 No. 50 Rosado 0,0 3,5 No. 200 Verde 70,8 134,6

Como se observa en la Tabla 4, este parámetro es demasiado amplio debido a la falta de uniformidad del color. Estos rangos máximos y mínimos se determinaron al sacar varios pixeles de las fotografías tomadas. Además, si sólo se utilizaran estos descriptores para analizar las imágenes, estas se someterían a varios errores, ya que el tinte de un color puede ser igual o estar dentro del rango de otro color. Por esta razón se implementó otro descriptor para que la segmentación fuese más depurada y controlada. El otro descriptor utilizado fue la saturación, el

cual se obtiene de la composición HSV. En este proceso se determinó no utilizar el “value”, último parámetro del HSV, ya que este se relaciona con el brillo del color, lo cual producía más varianza sobre el mismo color. En la Tabla 5 se muestran los parámetros establecidos para segmentar cada color (Hue y Saturación).

Tabla 5. Rango de tinte (Hue) y Saturación (Saturation) de cada color. Tamiz

(in) Color Mínimo Hue Máximo Hue Saturación Mínima Saturación Máxima

3/4" Azul Claro 141,7 190,5 0 127,5 1/2" Amarillo 23,4 56,7 127,5 255 3/8" Rojo 3,5 12,8 114,75 249,9 1/4" Naranja 12,8 21,3 102 229,5 No. 4 Gris 7,1 42,5 7,65 56,1 No. 8 Azul 191,3 251,5 38,25 102 No. 16 Negro No. 30 Café 10,6 21,3 58,65 102 No. 50 Rosado 0,0 3,5 51 178,5 Fondo Verde 70,8 134,6

Los descriptores de color en la Tabla 5 se comparan por cada pixel de las fotografías tomadas. Al terminar de recorrer cada imagen, los pixeles que concordaran con estos parámetros se segmentaban. Debido a la exactitud del programa era necesario que estos descriptores segmentaran la imagen sobre un rango, ya que las variaciones debido a la luz y falta de uniformidad sobre el color hacían que los parámetros variaran de forma importante. Estos rangos se traducen en la desviación estándar de la muestra a segmentar, ya que el pixel debe entrar en cualquiera de estos descriptores al recorrer la imagen. Por otra parte, el color negro (Tamiz No. 16) tuvo conflictos con las sobras de las partículas grandes; sin embargo, al ser partículas de tamaños pequeños, estas no producían tal fenómeno y se segmentaron restando los pixeles de toda la imagen menos los pixeles segmentados. Por la misma razón, fue necesario segmentar el fondo (color verde) y contar sus pixeles, ya que para determinar el porcentaje de la muestra de

la imagen se deben restar las dimensiones de la fotografía menos la segmentación del fondo.

2.5 Implementación de resultados en el modelos propuesto por Ocampo en

Documento similar