GIMP-Forum 3.0

GIMP-Forum 3.0 (http://www.gimpforum.de/index.php)
-   GIMP-Ressourcen (http://www.gimpforum.de/forumdisplay.php?f=8)
-   -   Hintergrund entfernen (http://www.gimpforum.de/showthread.php?t=1475)

flashnfantasy 13.04.2005 11:23

Hintergrund entfernen
 
Der Script entfernt einen komplett weißen oder schwarzen Hintergrund.
Eigentlich habe ich den Script geschrieben, um bei den komplexen Strukturen wie bei den elektrischen Schafen
http://gimpforum.de/ftopic544.html
eine gute Möglichkeit habe, mehrere Bilder zu überlagern.

Der Script erstellt eine Kontrastmaske aus dem vorhanden Bild.
Diese Kontrastmaske kann man noch leicht weichzeichnen lassen - was dann ein für das Auge angenehmeres Rendering erzeugt.

Wesentlich ist aber, daß man den Kontrast verstärken kann.
Im Default ist der Kontrast so eingestellt, daß nur die weißen bzw. schwarzen Flächen ausgeblendet werden.
Man kann jedoch den Maskenkontrast veringern und dadurch auch hellere bzw. dunklere Teile des Bildes in das Ausblenden mit einbeziehen.

Galeriebild

Code:

(script-fu-register "script-fu-rback"
                    _"<Image>/Script-Fu/Selection/remove-background"
                    "Entfernt den Hintergrund"
                    "Mathias Weitz"
                    "Mathias Weitz"
                    "18/07/03"
                    ""
                    SF-IMAGE "Image" 0
                    SF-DRAWABLE "Drawable" 0
                    SF-OPTION    _"BackgroundColor" '(_"White"
                                            _"Black"
                                            )
                    SF-ADJUSTMENT _"Soft" '(0.3 0 5 0.1 0.1 1 0)
                    SF-ADJUSTMENT _"Contrast" '(254 0 254 16 16 0 0)
                    SF-TOGGLE    _"New Layer" TRUE
                    )

(define (script-fu-rback inImage inLayer inBGround inSoft inContrast newLayer)

        (gimp-undo-push-group-start inImage)
        (set! theWidth (car (gimp-image-width inImage)))
        (set! theHeight (car (gimp-image-height inImage)))
        (set! workLayer inLayer)

        (if (= newLayer TRUE)
        (begin
            (set! layerA (car (gimp-layer-new inImage theWidth theHeight 1 "WorkLayer" 100 0)))
            (gimp-image-add-layer inImage layerA 0)
            (gimp-edit-copy inLayer)
            (set! flayerA (car (gimp-edit-paste layerA 0)))
            (gimp-floating-sel-anchor flayerA)
            (gimp-selection-clear inImage)
            (set! workLayer layerA)
        ))

        (gimp-selection-all inImage)
        (set! darksel (car (gimp-channel-new inImage (car (gimp-image-width inImage)) (car (gimp-image-height inImage)) "darkChannel" 100 '(255 0 0))))
        (gimp-image-add-channel inImage darksel 0)
        (gimp-edit-copy workLayer)
        (set! darkselfloat (car (gimp-edit-paste darksel 0)))
        (gimp-floating-sel-anchor darkselfloat)
        (if (= inBGround 1)
            (gimp-invert darksel))
        (gimp-levels darksel 0 inContrast 255 1 0 255)
        (plug-in-c-astretch 0 inImage darksel)
        (if (< 0 inSoft)
        (begin
          (plug-in-gauss 1 inImage darksel inSoft inSoft 1)
          (gimp-levels darksel 0 0 127 1 0 255)
        ))
        (gimp-selection-load darksel)
        (gimp-edit-clear workLayer)
        (gimp-image-remove-channel inImage darksel)
        ;(gimp-channel-delete darksel) ;quote for GIMP 2.0
        (gimp-selection-none inImage)
        (gimp-undo-push-group-end inImage)
        (gimp-displays-flush)
)


emptyvi 12.11.2005 23:41

Funzt bei mir nicht!
:(

Bricht immer ab und gibt ne Fehlermeldung aus.

Roxxy 07.10.2008 21:13

wie packt man des script denn in gimp rein?? :confused: ^^

faezzi 08.10.2008 10:25

Zwei Fehler:

Code:

Plug-In "remove-background" left image undo in inconsistent state, closing open undo groups.
und

Code:

Error while excecuting (script-fu-rback 4 16 0 0.29999999999999999 254 TRUE)
Error: set!: unbound variable: theWidth

GIMP 2.4.5 auf XP Pro. SP2

faezzi 17.10.2008 11:17

Version 2.6.1 bringts ohne genaue FM zum Absturz.


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:27 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.