; enfoque_deteccion.scm version 1.00 01 de abril de 2010 ; ; ;############################################################################## ; INSTALACIÓN ; 1.- Copia el archivo en: ; Si es GIM 2.4 y linux en la carpeta /home/tunombreusuario/.gimp-2.4/scripts ; Si es GIM 2.6 y linux en la carpeta /home/tunombreusuario/.gimp-2.6/scripts ; ; 2.- Reinicia Gimp ; ;############################################################################## ; CONFIGURACIÓN EN GIMP ; ; 1.- El script aparece en el menú Script-Fu de Gimp. Yo le he añadido una combinación de ; teclas para ejecutarlo (CTRL+ALT+F). Para hacerlo tienes que ir a: ; Archivo -> Preferencias -> Interfaz -> Configurar las combinaciones de teclas... ; ; 2.- Despliegas la lista de "Complementos" y al final del todo te aparecerá el script ; "Enfoque por deteccion de bordes". Lo seleccionas con el ratón y pulsas la combinación de teclas ; que te gusta (en mi caso CTRL+ALT+F) ; ;############################################################################## ; ENFOQUE POR DETECCIÓN DE BORDES: ; Este script automatiza el tratamiento por zonas de imágenes digitales con Gimp. No obstante, ; a continuación os explico paso por paso, cuales son los pasos que se siguen habitualmente para ; trabajar una imagen por zonas, esto lo hago para que se comprenda qué es lo que hace el script ; y sirva para comprender el proceso de forma general. Los pasos que se detallan en los puntos: ; 4, 5, 6, 7 y 8 son los que el script automatiza para aligerar nuestro flujo de trabajo de revelado ; creativo de fotografías NO RAW con Gimp (para no confundir he puesto un asterisco a los puntos ; que se realizarán de forma automática al ejecutar el script): ; ; 1.- Abrir un archivo de imagen (NO RAW) con Gimp. ; 2.- Hacer los ajustes generales de contraste y puntos blanco y negro con las herramientas Niveles o Curvas. ; 3.- Con la herramienta "selección libre" (F). Selecciono la zona que quiero ajustar con ayuda de tableta ; gráfica o ratón. ; 3.1.- Si necesitas rectificar la selección. Máscara rápida Sift+Q y pintas en negro o blanco para ; añadir o quitar selección. ; 3.2.- Quitar Máscara rápida. Sift+Q ; ; EJECUTA AHORA EL SCRIPT PARA AUTOMATIZAR TODOS ESTOS PASOS QUE VIENEN A CONTINUACIÓN: ; ; 4*.- Se copia como capa la imagen de base, pero esta vez lo que ajustaré será la zona que tenía seleccionada, ; con las herramientas Niveles o Curvas. ; ; 5*.- Añadir máscara de capa a partir de la selección. ; ; 6*.- Cambiar el modo de fusión de la capa dependiendo del ajuste que queremos hacer: ; 6.1.- Modo de fusión NORMAL si es una foto en escala de grises. ; 6.2.- Modo de fusión VALOR si se trata de una foto RGB. ; ; 7*.- Cambiamos la opacidad de la capa al 50%. Esto nos permite un ajuste a "posteriori" del efecto que buscamos. ; ; 8*.- Para suavizar la transición entre la zona ajustada y la imagen puedes desenfocar la máscara con ; Desenfoque gaussiano, hasta que dejes de notar la transición. Depende de la zona y de la resolución ; de la imagen, pero generalmente no suelo bajar de 300 y no es raro usar 1000 o más en los cielos, por ejemplo. ; ; 9.- Volvemos al paso 3 del tratamiento digital para la siguiente zona ; ; ; ; Este Plugin está hecho para Gimp a partir de su versión 2.0 ; ; Log de cambios: ; 1.00 - Script inicial ; ;############################################################################## ; ; LICENCIA ; ; Copyright (C) 2010 www.tomassenabre.es ; ; Enfoque por deteccion de bordes es software libre; puedes copiarlo, distribuirlo y/o ; modificarlo dentro de los términos considerados en la Licencia Pública General ; de GNU publicada por la Fundación de Software Libre. ; ; Enfoque por deteccion de bordes se distribuye con la esperanza de de que será de ; utilidad, pero SIN NINGUNA GARANTÍA; tampoco tiene garantías de ; MERCHANDISE o APTITUD PARA UN PROPÓSITO PARTICULAR. ; ;############################################################################## ; ; LICENSE ; ; Copyright (C) 2010 www.tomassenabre.es ; ; Sharp by edge detection is free software; you can redistribute it and/or ; modify it under the terms of the GNU General Public License as ; published by the Free Software Foundation. ; ; Sharp by edge detection is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ; General Public License for more details. ; ;############################################################################## ; ; ------------------------------------------------------------------------------------------------ ; Definición de las variables (define (script-fu-enfoque-por-deteccion-bordes aimg drawable) ; ------------------------------------------------------------------------------------------------ ; Si tu ordenador no es muy potente, es conveniente que acoples cada una de las zonas que vas revelando ; por que Gimp se vuelve pesado con forme se incrementa el número de capas. Para ello suprime el ";" ; de la siguiente línea: ; (gimp-image-flatten aimg) ; ------------------------------------------------------------------------------------------------ ; Comienza a guardar las acciones para poder usar la acción "deshacer" (gimp-undo-push-group-start aimg) ; ------------------------------------------------------------------------------------------------ ; Crear nuevas imágenes y capas necesarias a partir de la imagen de base (let* ( (layers (gimp-image-get-layers aimg)) (nb-layers (car layers)) (layers-array (cadr layers)) (background-dup (car (gimp-layer-copy drawable TRUE))) (background-dup (car (if (> nb-layers 0) (gimp-layer-copy (aref layers-array (- nb-layers 1)) TRUE)))) (layer-mask (car (gimp-layer-create-mask background-dup ADD-COPY-MASK))) (height (car (gimp-image-height aimg))) (width (car (gimp-image-width aimg))) (size (/ (sqrt (* width height)) 20)) ) ; Realizamos las siguientes acciones descritas en el flujo de trabajo: ; ------------------------------------------------------------------------------------------------ ; Creamos la nueva capa con la imagen de base (gimp-image-add-layer aimg background-dup -1) ; ------------------------------------------------------------------------------------------------ ; Crea una máscara de capa a partir de una copia de la capa en escala de grises y se ajustan niveles (gimp-layer-create-mask background-dup ADD-COPY-MASK) (gimp-layer-add-mask background-dup layer-mask) (gimp-levels-stretch layer-mask) ; ------------------------------------------------------------------------------------------------ ; Quita la selección por si se tenía alguna activa (gimp-selection-none aimg) ; ------------------------------------------------------------------------------------------------ ; Invertimos el valor de la máscara creada (gimp-invert layer-mask) ; ------------------------------------------------------------------------------------------------ ; Ejecuta el script de detección de bordes DIFERENCIAL sobre la máscara (plug-in-edge FALSE aimg layer-mask 2.0 1 4) ; ------------------------------------------------------------------------------------------------ ; Inicia la herramienta de desenfoque gaussiano, sobre el resultado de la máscara de bordes (plug-in-gauss-rle2 FALSE aimg layer-mask 2.0 2.0) ; ------------------------------------------------------------------------------------------------ ; Le da nombre a la capa generada (gimp-layer-set-name background-dup "Enfoque ") ; ------------------------------------------------------------------------------------------------ ; Fija la opacidad de la nueva capa. Por defecto está en 75%, pero se puede cambiar a vuestras necesidades (gimp-layer-set-opacity background-dup 75) ; ------------------------------------------------------------------------------------------------ ; Cambia la selección de edición de la máscara a la imagen para ejecutar la máscara de desenfoque (gimp-layer-set-edit-mask background-dup FALSE) ; ------------------------------------------------------------------------------------------------ ; Lanza el plug-in de máscara de desenfoque (plug-in-unsharp-mask FALSE aimg background-dup (* size 0.15) ; radio (Esta es una constante empírica) 0.8 ; Cantidad 0 ; Umbral ) ) ; ------------------------------------------------------------------------------------------------ ; Cierra el grupo de la acción "deshacer" (gimp-undo-push-group-end aimg) ; ------------------------------------------------------------------------------------------------ ; Vacia todos los procesos internos del script (gimp-displays-flush)) (script-fu-register "script-fu-enfoque-por-deteccion-bordes" "/Script-Fu/_Enfoque por deteccion de bordes" "Crea una capa con máscara a partir de la imagen de base con detección de bordes para el enfoque selectivo." "Tomas Senabre " "www.tomassenabre.es" "Apr 01, 2010" "RGB*, GRAY*" SF-IMAGE "Input Image" 1 SF-DRAWABLE "Input Drawable" 0) ; Copyright 2010 Tomás Senabre www.tomassenabre.es