Artículos

Procesamiento por Lotes

de Enzo De Bernardini

Instroducción

Este artículo tratará la manera de aplicar uno o varios procesos sobre un conjunto de imágenes de forma automática, lo que se denomina procesamiento por lotes (batch processing). Este tipo de técnica es útil en las ocasiones en donde es necesario ejecutar el mismo proceso sobre un gran número de imágenes. La idea general es tener dos conjuntos principales: un contenedor de imágenes (ImageContainer) y un contenedor de procesos (Process Container), para aplicar el conjunto de procesos sobre el conjunto de imágenes.

ImageContainer

El contenedor de imágenes (ImageContainer) permite agrupar los archivos que serán procesados. Para acceder al mismo: click derecho sobre un área libre del workspace y seleccionar la opción Image Container del menú contextual, o utilizar el método abreviado CTRL + ALT + I.

Image Container

La ventana principal del ImageContainer permite añadir los archivos que serán procesados y configurar los diferentes parámetros, siendo los mas importantes la ruta de destino de los nuevos archivos que serán creados y la forma en la que serán nombrados estos archivos, incluyendo el tipo de archivo.

ImageContainer

Configuración paso a paso:

  1. Click en el botón Add Files Add Files para añadir los archivos que se deseen procesar.
  2. Seleccionar la ubicación de destino para las imágenes ya procesadas en Output directory haciendo click sobre el icono a la derecha del correspondiente campo Select output directory.
  3. En el campo Output template, configurar el formato del nombre de los archivos y el tipo de extensión que tendrá. En cuanto al nombre, puede mantenerse el nombre de los archivos de origen utilizando la expresión &filename;, o cambiarla por otra a conveniencia. Para mantener la misma extensión que los archivos de origen, utilizar la expresión &extension;. En cambio, si deseamos guardar los archivos en otro formato, por ejemplo .fit, ingresar .fit al final del campo. Un listado completo de las expresiones disponibles puede verse haciendo click sobre el botón ? que se encuentra a la derecha del campo. En nuestro ejemplo utilizaremos la siguiente notación: &count;_&filename;.fit, la que simplemente añadirá un prefijo numerando los archivos (&count;), seguido de un guión separador (_), mantendrá luego el nombre original (&filename;) y guardará los archivos generados en formato FITS (.fit).
  4. Opcionalmente puede presionarse el botón Run Diagnostics Run Diagnostics para comprobar que todas las configuraciones son correctas.
  5. Generar un icono de instancia arrastrando y soltado el triángulo azul de la esquina inferior izquierda de la ventana del ImageContainer hacia un área libre del workspace (ver video sobre cómo generar un icono de instancia)

ImageContainer

  1. Si desea omitirse alguna o algunas imágenes del listado (por ejemplo para probar el procedimiento antes de ejecutarlo en el lote completo) es posible desactivar una imagen haciendo doble click sobre el icono verde de visto, el cual pasará a ser una x roja, indicando que esa imagen fue desactivada y no será procesada.

ImageContainer

El siguiente video ejemplifica el procedimiento simplificado:

ProcessContainer

A continuación debe prepararse el conjunto de procesos que serán aplicados a todas las imágenes agrupadas en la instancia del ImageContainer previamente generado. Para este ejemplo supondremos que deseamos redimensionar y hacer un ajuste de histogramas al conjunto de imágenes.

Como primer paso puede abrise una de las imágenes involucradas, cualquiera de ellas, y aplicar los procesos que luego serán ejecutados sobre todas las demás. Este es solo un ejemplo, por tanto debe adaptarse el concepto expuesto a las necesidades particulares del procesamiento. La mayoría de los procesos admiten este tipo de automatización por lotes.

Procesamiento paso a paso:

  1. Abrir una de las imágenes involucradas CTRL + O, o doble click sobre un área libre del workspace para abrir el explorador de archivos correspondiente.
  2. Siguiendo el ejemplo, se redimensiona la imagen utilizando el proceso Resample (Process › Geometry › Resample)

Resample

  1. Y por último, para este ejemplo sencillo, un ajuste de histogramas con HistogramTransformation:

HistogramTransformation

  1. Una vez aplicados todos los procesos necesarios sobre la imagen, debe abrirse la ventana de exploración correspondiente a History Explorer y seleccionar la imagen desde el desplegable inferior, para así visualizar el historial de los mismos (si esta ventana no se encuentra visible, activarla desde el menú View › Explore Windows › History Explorer).

History Explorer

  1. Desde el History Explorer debe ahora generarse un icono de instancia que contenga todos los procesos, un ProcessContainer. Para ello, arrastrar y soltar el triángulo azul de la esquina inferior izquierda hacia un área libre del workspace. De esta forma, en ese icono, quedarán encapsulados todos los procesos aplicados a la imagen (en este caso dos: Resample y HistogramTransformation). EL siguiente video muestra el procedimiento.

  1. Habiendo generado el icono de instancia del ImageContainer y el icono del ProcessContainer todo está listo para el procesamiento por lotes. Sencillamente debe arrastrarse y soltar el icono del ProcessContainer sobre el icono del ImageContainer.

ImageContainer

  1. Si todo ha salido bien, los procesos encapsulados dentro del ProcessContainer serán aplicados a todas las imágenes agrupadas dentro del ImageContainer, generando nuevos archivos en la ruta de destino especificada y con las características configuradas. Podremos comprobarlo abriendo la ruta y verificando los archivos.

Si se desea omitir la aplicación de alguno de los procesos encapsulados en el ProcessContainer, puede abrirse el mismo haciendo doble click sobre su icono para desactivar el proceso correspondiente haciendo doble click sobre el icono de visto, pasando este a ser una x roja, indicando así que se encuentra inactivo y no será aplicado. Una vez hecho esto, debe generarse un nuevo icono de instancia del ProcessContainer arrastrando el triángulo azul al workspace, o actualizar el icono ya existente arrastrando el triángulo azul sobre el mismo.

ProcessContainer

La mayoría de los procesos pueden encapsularse en un ProcessContainer y ser aplicados por lotes a un ImageContainer de la forma descrita. Esta funcionalidad es sumamente útil a la hora de aplicar procesos repetitivos a un gran número de imágenes, simplificando considerablemente las tareas.

Última actualización: 27/11/2023 03:57 UT