Python-FuをScript-Fuで書き直します。
【GIMP・Python-Fu】若干大き目にファジー選択
前回作成したスクリプトで、2値化したレイヤーでファジー選択し、今回のスクリプトを実行すると、元レイヤーが若干大き目に範囲選択されます。境界線で囲まれた図形をファジー選択すると基本的に境界線の内側が選択されます。それを境界線を含めてファジー選...
穴の削除
(gimp-selection-flood img)
選択範囲を拡大
(define n_px 9)
(gimp-selection-grow img n_px)
前景色に白をセットし塗りつぶし
(gimp-context-set-foreground '(255 255 255))
(gimp-drawable-edit-fill layer 0)
中心でファジー選択
(gimp-fuzzy-select layer (+ x1 (/ (- x2 x1) 2)) (+ y1 (/ (- y2 y1) 2)) 127 2 1.0 0 0 0)
レイヤーの削除
(gimp-image-remove-layer img layer)
スクリプト全体
スクリプトの保存場所:%Userprofile%\AppData\Roaming\GIMP\2.10\scripts
ファイル名:select-larger.scm
ファイル名:select-larger.scm
;
; 若干大き目にファジー選択
;
; あらかじめ選択用に2値化したレイヤーに対しファジー選択した状態で実行
;
(define (script-fu-select-larger img layer)
; Undo記録開始
(gimp-undo-push-group-start img)
; 拡大するpxサイズ
(define n_px 9)
; 選択範囲座標の取得
(define sb (gimp-selection-bounds img))
(define non_empty (car sb))
(define x1 (car (cdr sb)))
(define y1 (car (cdr (cdr sb))))
(define x2 (car (cdr (cdr (cdr sb)))))
(define y2 (car (cdr (cdr (cdr (cdr sb))))))
; 穴の削除
(gimp-selection-flood img)
; 選択範囲を拡大
(gimp-selection-grow img n_px)
; 選択範囲の反転
(gimp-selection-invert img)
; 前景色に白をセットし塗りつぶし
(gimp-context-set-foreground '(255 255 255))
(gimp-drawable-edit-fill layer 0)
; 中心でファジー選択
(gimp-fuzzy-select layer (+ x1 (/ (- x2 x1) 2)) (+ y1 (/ (- y2 y1) 2)) 127 2 1.0 0 0 0)
; 選択範囲を1px拡大
(gimp-selection-grow img 1)
; 前景色に黒をセットし塗りつぶし
(gimp-context-set-foreground '(0 0 0))
(gimp-drawable-edit-fill layer 0)
; 中心でファジー選択
(gimp-fuzzy-select layer (+ x1 (/ (- x2 x1) 2)) (+ y1 (/ (- y2 y1) 2)) 127 2 1.0 0 0 0)
; レイヤーの削除
(gimp-image-remove-layer img layer)
; Undo記録終了
(gimp-undo-push-group-end img)
(gimp-displays-flush)
)
(script-fu-register "script-fu-select-larger"
"<Image>/Filters/My/大き目に選択..."
"あらかじめ選択用に2値化したレイヤーに対しファジー選択した状態で実行。"
"Maywork"
"Copyright 2020, Maywork"
"04/07/2022"
"RGB* GRAY*"
SF-IMAGE "Input Image" 0
SF-DRAWABLE "Input Layer" 0
)
コメント