RFX-GIMP

Hex Artifact Content
Login

Artifact 870235088a8a824257fa5eb02d758a210f6e2028:


0000: 23 20 24 70 30 20 2d 20 45 64 67 65 20 74 68 69  # $p0 - Edge thi
0010: 63 6b 6e 65 73 73 20 28 30 2d 31 30 29 20 5b 30  ckness (0-10) [0
0020: 5d 0a 23 20 24 70 31 20 2d 20 45 64 67 65 20 69  ].# $p1 - Edge i
0030: 6e 74 65 6e 73 69 74 79 20 28 30 2d 31 30 30 29  ntensity (0-100)
0040: 20 5b 38 30 5d 0a 23 20 24 70 32 20 2d 20 50 6f   [80].# $p2 - Po
0050: 73 74 65 72 69 7a 65 20 28 23 20 63 6f 6c 6f 72  sterize (# color
0060: 73 29 20 5b 31 30 5d 0a 23 20 24 70 33 20 2d 20  s) [10].# $p3 - 
0070: 53 6d 6f 6f 74 68 69 6e 67 20 5b 35 5d 0a 23 20  Smoothing [5].# 
0080: 24 70 34 20 2d 20 42 6c 61 63 6b 20 74 68 72 65  $p4 - Black thre
0090: 73 68 6f 6c 64 20 5b 33 36 5d 0a 0a 26 72 66 78  shold [36]..&rfx
00a0: 5f 73 65 6e 64 6d 73 67 20 28 0a 20 20 71 71 7b  _sendmsg (.  qq{
00b0: 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 69 6e 70  .    (let* ((inp
00c0: 75 74 2d 66 69 6c 65 20 28 73 74 72 69 6e 67 2d  ut-file (string-
00d0: 61 70 70 65 6e 64 20 22 24 63 75 72 74 6d 70 64  append "$curtmpd
00e0: 69 72 22 20 44 49 52 2d 53 45 50 41 52 41 54 4f  ir" DIR-SEPARATO
00f0: 52 20 22 24 69 6e 22 29 29 0a 20 20 20 20 20 20  R "$in")).      
0100: 20 20 20 20 20 28 69 6d 61 67 65 20 28 63 61 72       (image (car
0110: 20 28 67 69 6d 70 2d 66 69 6c 65 2d 6c 6f 61 64   (gimp-file-load
0120: 20 52 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41 43 54   RUN-NONINTERACT
0130: 49 56 45 20 69 6e 70 75 74 2d 66 69 6c 65 20 69  IVE input-file i
0140: 6e 70 75 74 2d 66 69 6c 65 29 29 29 0a 20 20 20  nput-file))).   
0150: 20 20 20 20 20 20 20 20 28 6c 61 79 65 72 20 28          (layer (
0160: 63 61 72 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d  car (gimp-image-
0170: 67 65 74 2d 61 63 74 69 76 65 2d 6c 61 79 65 72  get-active-layer
0180: 20 69 6d 61 67 65 29 29 29 20 29 0a 20 20 20 20   image))) ).    
0190: 20 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 75 6e    (gimp-image-un
01a0: 64 6f 2d 64 69 73 61 62 6c 65 20 69 6d 61 67 65  do-disable image
01b0: 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62  ).      (let ((b
01c0: 75 66 66 65 72 20 28 63 61 72 20 28 67 69 6d 70  uffer (car (gimp
01d0: 2d 65 64 69 74 2d 6e 61 6d 65 64 2d 63 6f 70 79  -edit-named-copy
01e0: 20 6c 61 79 65 72 20 22 6f 72 69 67 22 29 29 29   layer "orig")))
01f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65  .            (re
0200: 74 69 6e 65 78 2d 6c 61 79 65 72 20 28 63 61 72  tinex-layer (car
0210: 20 28 67 69 6d 70 2d 6c 61 79 65 72 2d 63 6f 70   (gimp-layer-cop
0220: 79 20 6c 61 79 65 72 20 54 52 55 45 29 29 29 0a  y layer TRUE))).
0230: 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 74              (ret
0240: 69 6e 65 78 2d 6d 61 73 6b 20 30 29 0a 20 20 20  inex-mask 0).   
0250: 20 20 20 20 20 20 20 20 20 28 65 64 67 65 2d 6c           (edge-l
0260: 61 79 65 72 20 30 29 20 29 0a 20 20 20 20 20 20  ayer 0) ).      
0270: 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 3f    (unless (zero?
0280: 20 24 70 32 29 0a 20 20 20 20 20 20 20 20 20 20   $p2).          
0290: 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 3f 20 24  (unless (zero? $
02a0: 70 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20  p3).            
02b0: 28 70 6c 75 67 2d 69 6e 2d 67 61 75 73 73 20 52  (plug-in-gauss R
02c0: 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41 43 54 49 56  UN-NONINTERACTIV
02d0: 45 20 69 6d 61 67 65 20 6c 61 79 65 72 20 24 70  E image layer $p
02e0: 33 20 24 70 33 20 30 29 20 29 0a 20 20 20 20 20  3 $p3 0) ).     
02f0: 20 20 20 20 20 28 67 69 6d 70 2d 69 6d 61 67 65       (gimp-image
0300: 2d 63 6f 6e 76 65 72 74 2d 69 6e 64 65 78 65 64  -convert-indexed
0310: 20 69 6d 61 67 65 20 4e 4f 2d 44 49 54 48 45 52   image NO-DITHER
0320: 20 20 4d 41 4b 45 2d 50 41 4c 45 54 54 45 20 24    MAKE-PALETTE $
0330: 70 32 20 46 41 4c 53 45 20 46 41 4c 53 45 20 22  p2 FALSE FALSE "
0340: 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 69  ").          (gi
0350: 6d 70 2d 69 6d 61 67 65 2d 63 6f 6e 76 65 72 74  mp-image-convert
0360: 2d 72 67 62 20 69 6d 61 67 65 29 20 29 0a 20 20  -rgb image) ).  
0370: 20 20 20 20 20 20 28 67 69 6d 70 2d 69 6d 61 67        (gimp-imag
0380: 65 2d 61 64 64 2d 6c 61 79 65 72 20 69 6d 61 67  e-add-layer imag
0390: 65 20 72 65 74 69 6e 65 78 2d 6c 61 79 65 72 20  e retinex-layer 
03a0: 30 29 0a 20 20 20 20 20 20 20 20 28 70 6c 75 67  0).        (plug
03b0: 2d 69 6e 2d 72 65 74 69 6e 65 78 20 52 55 4e 2d  -in-retinex RUN-
03c0: 4e 4f 4e 49 4e 54 45 52 41 43 54 49 56 45 20 69  NONINTERACTIVE i
03d0: 6d 61 67 65 20 72 65 74 69 6e 65 78 2d 6c 61 79  mage retinex-lay
03e0: 65 72 20 31 36 20 33 20 30 20 30 2e 31 29 0a 20  er 16 3 0 0.1). 
03f0: 20 20 20 20 20 20 20 28 73 65 74 21 20 72 65 74         (set! ret
0400: 69 6e 65 78 2d 6d 61 73 6b 20 28 63 61 72 20 28  inex-mask (car (
0410: 67 69 6d 70 2d 6c 61 79 65 72 2d 63 72 65 61 74  gimp-layer-creat
0420: 65 2d 6d 61 73 6b 20 72 65 74 69 6e 65 78 2d 6c  e-mask retinex-l
0430: 61 79 65 72 20 30 29 29 29 0a 20 20 20 20 20 20  ayer 0))).      
0440: 20 20 28 67 69 6d 70 2d 6c 61 79 65 72 2d 61 64    (gimp-layer-ad
0450: 64 2d 6d 61 73 6b 20 72 65 74 69 6e 65 78 2d 6c  d-mask retinex-l
0460: 61 79 65 72 20 72 65 74 69 6e 65 78 2d 6d 61 73  ayer retinex-mas
0470: 6b 29 0a 20 20 20 20 20 20 20 20 28 67 69 6d 70  k).        (gimp
0480: 2d 66 6c 6f 61 74 69 6e 67 2d 73 65 6c 2d 61 6e  -floating-sel-an
0490: 63 68 6f 72 20 28 63 61 72 20 28 67 69 6d 70 2d  chor (car (gimp-
04a0: 65 64 69 74 2d 6e 61 6d 65 64 2d 70 61 73 74 65  edit-named-paste
04b0: 20 72 65 74 69 6e 65 78 2d 6d 61 73 6b 20 62 75   retinex-mask bu
04c0: 66 66 65 72 20 54 52 55 45 29 29 29 0a 20 20 20  ffer TRUE))).   
04d0: 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65       (unless (ze
04e0: 72 6f 3f 20 24 70 34 29 0a 20 20 20 20 20 20 20  ro? $p4).       
04f0: 20 20 20 28 67 69 6d 70 2d 74 68 72 65 73 68 6f     (gimp-thresho
0500: 6c 64 20 72 65 74 69 6e 65 78 2d 6d 61 73 6b 20  ld retinex-mask 
0510: 24 70 34 20 32 35 35 29 0a 20 20 20 20 20 20 20  $p4 255).       
0520: 20 20 20 28 70 6c 75 67 2d 69 6e 2d 67 61 75 73     (plug-in-gaus
0530: 73 20 52 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41 43  s RUN-NONINTERAC
0540: 54 49 56 45 20 69 6d 61 67 65 20 72 65 74 69 6e  TIVE image retin
0550: 65 78 2d 6d 61 73 6b 20 28 2a 20 30 2e 30 31 20  ex-mask (* 0.01 
0560: 24 77 69 64 74 68 29 20 28 2a 20 30 2e 30 31 20  $width) (* 0.01 
0570: 24 77 69 64 74 68 29 20 30 29 20 29 0a 20 20 20  $width) 0) ).   
0580: 20 20 20 20 20 28 67 69 6d 70 2d 6c 61 79 65 72       (gimp-layer
0590: 2d 72 65 6d 6f 76 65 2d 6d 61 73 6b 20 72 65 74  -remove-mask ret
05a0: 69 6e 65 78 2d 6c 61 79 65 72 20 4d 41 53 4b 2d  inex-layer MASK-
05b0: 41 50 50 4c 59 29 0a 20 20 20 20 20 20 20 20 28  APPLY).        (
05c0: 67 69 6d 70 2d 62 75 66 66 65 72 2d 64 65 6c 65  gimp-buffer-dele
05d0: 74 65 20 62 75 66 66 65 72 29 0a 20 20 20 20 20  te buffer).     
05e0: 20 20 20 28 67 69 6d 70 2d 6c 61 79 65 72 2d 73     (gimp-layer-s
05f0: 65 74 2d 6d 6f 64 65 20 72 65 74 69 6e 65 78 2d  et-mode retinex-
0600: 6c 61 79 65 72 20 56 41 4c 55 45 2d 4d 4f 44 45  layer VALUE-MODE
0610: 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 21 20  ).        (set! 
0620: 65 64 67 65 2d 6c 61 79 65 72 20 28 63 61 72 20  edge-layer (car 
0630: 28 67 69 6d 70 2d 6c 61 79 65 72 2d 63 6f 70 79  (gimp-layer-copy
0640: 20 28 63 61 72 20 28 67 69 6d 70 2d 69 6d 61 67   (car (gimp-imag
0650: 65 2d 6d 65 72 67 65 2d 64 6f 77 6e 20 69 6d 61  e-merge-down ima
0660: 67 65 20 72 65 74 69 6e 65 78 2d 6c 61 79 65 72  ge retinex-layer
0670: 20 43 4c 49 50 2d 54 4f 2d 49 4d 41 47 45 29 29   CLIP-TO-IMAGE))
0680: 20 54 52 55 45 29 29 29 0a 20 20 20 20 20 20 20   TRUE))).       
0690: 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d 61 64 64   (gimp-image-add
06a0: 2d 6c 61 79 65 72 20 69 6d 61 67 65 20 65 64 67  -layer image edg
06b0: 65 2d 6c 61 79 65 72 20 30 29 0a 20 20 20 20 20  e-layer 0).     
06c0: 20 20 20 28 70 6c 75 67 2d 69 6e 2d 67 61 75 73     (plug-in-gaus
06d0: 73 20 52 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41 43  s RUN-NONINTERAC
06e0: 54 49 56 45 20 69 6d 61 67 65 20 65 64 67 65 2d  TIVE image edge-
06f0: 6c 61 79 65 72 20 32 2e 30 20 32 2e 30 20 30 29  layer 2.0 2.0 0)
0700: 0a 20 20 20 20 20 20 20 20 28 70 6c 75 67 2d 69  .        (plug-i
0710: 6e 2d 6c 61 70 6c 61 63 65 20 52 55 4e 2d 4e 4f  n-laplace RUN-NO
0720: 4e 49 4e 54 45 52 41 43 54 49 56 45 20 69 6d 61  NINTERACTIVE ima
0730: 67 65 20 65 64 67 65 2d 6c 61 79 65 72 29 0a 20  ge edge-layer). 
0740: 20 20 20 20 20 20 20 28 70 6c 75 67 2d 69 6e 2d         (plug-in-
0750: 64 65 73 70 65 63 6b 6c 65 20 52 55 4e 2d 4e 4f  despeckle RUN-NO
0760: 4e 49 4e 54 45 52 41 43 54 49 56 45 20 69 6d 61  NINTERACTIVE ima
0770: 67 65 20 65 64 67 65 2d 6c 61 79 65 72 20 31 20  ge edge-layer 1 
0780: 31 20 30 20 32 35 35 29 0a 20 20 20 20 20 20 20  1 0 255).       
0790: 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 3f 20   (unless (zero? 
07a0: 24 70 30 29 0a 20 20 20 20 20 20 20 20 20 20 28  $p0).          (
07b0: 70 6c 75 67 2d 69 6e 2d 76 70 72 6f 70 61 67 61  plug-in-vpropaga
07c0: 74 65 20 52 55 4e 2d 4e 4f 4e 49 4e 54 45 52 41  te RUN-NONINTERA
07d0: 43 54 49 56 45 20 69 6d 61 67 65 20 65 64 67 65  CTIVE image edge
07e0: 2d 6c 61 79 65 72 0a 20 20 20 20 20 20 20 20 20  -layer.         
07f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0800: 20 20 20 20 20 36 20 3b 20 70 72 6f 70 61 67 61       6 ; propaga
0810: 74 65 2d 6d 6f 64 65 20 0a 20 20 20 20 20 20 20  te-mode .       
0820: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0830: 20 20 20 20 20 20 20 33 20 3b 20 70 72 6f 70 61         3 ; propa
0840: 67 61 74 69 6e 67 2d 63 68 61 6e 6e 65 6c 20 0a  gating-channel .
0850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0860: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f                (/
0870: 20 24 70 30 20 31 30 29 20 3b 20 70 72 6f 70 61   $p0 10) ; propa
0880: 67 61 74 69 6e 67 2d 72 61 74 65 20 0a 20 20 20  gating-rate .   
0890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08a0: 20 20 20 20 20 20 20 20 20 20 20 31 35 20 3b 20             15 ; 
08b0: 64 69 72 65 63 74 69 6f 6e 2d 6d 61 73 6b 20 0a  direction-mask .
08c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
08d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20                0 
08e0: 3b 20 6c 6f 77 65 72 2d 6c 69 6d 69 74 20 0a 20  ; lower-limit . 
08f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0900: 20 20 20 20 20 20 20 20 20 20 20 20 20 32 35 35               255
0910: 20 3b 20 75 70 70 65 72 2d 6c 69 6d 69 74 0a 20   ; upper-limit. 
0920: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0930: 20 20 20 20 20 20 20 20 20 20 20 20 20 29 29 0a               )).
0940: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 6c 61          (gimp-la
0950: 79 65 72 2d 73 65 74 2d 6f 70 61 63 69 74 79 20  yer-set-opacity 
0960: 65 64 67 65 2d 6c 61 79 65 72 20 24 70 31 29 0a  edge-layer $p1).
0970: 20 20 20 20 20 20 20 20 28 67 69 6d 70 2d 64 65          (gimp-de
0980: 73 61 74 75 72 61 74 65 2d 66 75 6c 6c 20 65 64  saturate-full ed
0990: 67 65 2d 6c 61 79 65 72 20 31 29 20 29 0a 20 20  ge-layer 1) ).  
09a0: 20 20 20 20 28 67 69 6d 70 2d 69 6d 61 67 65 2d      (gimp-image-
09b0: 66 6c 61 74 74 65 6e 20 69 6d 61 67 65 29 0a 20  flatten image). 
09c0: 20 20 20 20 20 28 72 66 78 2d 73 61 76 65 2d 66       (rfx-save-f
09d0: 72 61 6d 65 20 69 6d 61 67 65 20 22 24 6f 75 74  rame image "$out
09e0: 22 29 20 29 0a 20 20 20 20 7d 0a 20 20 29 3b 0a  ") ).    }.  );.
09f0: 0a                                               .