GIMP UIには、自動と呼ばれるオプションを持つApply Threshold機能(GIMP 2.6)があります。これにより、画像の適切な下限しきい値が自動的に計算されます。この関数/オプションはプラグインで使用できるのですか? gimp-thresholdとgimp-histogram関数はこのオプションを持たないようです。gimpスクリプトの自動しきい値機能
答えて
ここで私が最後に使用したソリューションです。グレースケール画像でのみ動作します。 gimphistogram.cでgimp_histogram_get_threshold機能のように、その同じアルゴリズム
http://git.gnome.org/browse/gimp/tree/app/base/gimphistogram.c
(define (auto-threshold imagePath)
(let*
(
(theImage (car (gimp-file-load
RUN-NONINTERACTIVE
imagePath
imagePath
)
)
)
(theDrawable (car (gimp-image-get-active-drawable theImage)))
(hist (get-hist theDrawable 0))
)
(get-auto-threshold hist)
)
)
;returns the threshold
(define (get-auto-threshold hist)
(let*
(
(hist_max (vector-ref hist 0))
(chist (make-vector 256))
(cmom (make-vector 256))
(maxval 255) ;end - start
(i 1)
(tmp)
(chist_max)
(cmom_max)
(bvar_max 0)
(threshold 127)
)
(vector-set! chist 0 (vector-ref hist 0))
(vector-set! cmom 0 0)
(set! i 1)
(while (<= i maxval)
(if (> (vector-ref hist i) hist_max)
(set! hist_max (vector-ref hist i))
)
(vector-set! chist i (+ (vector-ref chist (- i 1)) (vector-ref hist i)))
(vector-set! cmom i (+ (vector-ref cmom (- i 1)) (* i (vector-ref hist i))))
(set! i (+ i 1))
)
(set! chist_max (vector-ref chist maxval))
(set! cmom_max (vector-ref cmom maxval))
(set! i 0)
(while (< i maxval)
(if (and (> (vector-ref chist i) 0) (< (vector-ref chist i) chist_max))
(let*
((bvar (/ (vector-ref cmom i) (vector-ref chist i))))
(set! bvar (- bvar (/ (- cmom_max (vector-ref cmom i)) (- chist_max (vector-ref chist i)))))
(set! bvar (* bvar bvar))
(set! bvar (* bvar (vector-ref chist i)))
(set! bvar (* bvar (- chist_max (vector-ref chist i))))
(if (> bvar bvar_max)
(begin
(set! threshold i)
(set! bvar_max bvar)
)
)
)
)
(set! i (+ i 1))
)
threshold
)
)
;returns the raw histogram with values 0-1 as an array
(define (get-hist drawable chan)
(let* (
(i 0)
(hist (make-vector 256))
)
(set! i 0)
(while (< i 256)
(vector-set! hist i (car (cddddr (gimp-histogram drawable chan i i))))
(set! i (+ i 1))
)
hist
)
)
残念ながら、GIMPバージョン2.6では、この機能はProcedural Database(API)に公開されていないため、script-fuスクリプトやPythonスクリプトでは使用できません。
はい、私は同じ結論に達しました。しかし、私はGIMPのソースコードを検索し、gimphistogram.cのこの関数gimp_histogram_get_thresholdに遭遇しました。これはすべての魔法を行うようです。私はそのアルゴリズムをscript-fuに変換しようとしています。しかし、Schemeに慣れていないので、私は遅くなっています。できるだけ早くこれを解決しようとします。 – aldrin
私はこの機能を最近探して、script-fuで実装しようとしないことにしました。自動ボタンがしきい値ダイアログから計算した値をスクリプトのパラメータダイアログ(sigh)にコピーするようにユーザに残しました。使用可能なコードを考え出すなら、私はそれを利用できる唯一の人ではないと確信しています。最適な閾値処理は、基本的な画像操作技術である。 – mgkrebbs
@アルドリン:私は実際にPDBにいくつかの不足しているエントリを追加していました - あなたの研究に感謝します - それはGIMP 2.8(数週間後に出てくるはずです)の時代であるかもしれません – jsbueno
- 1. 自動更新機能付きGoogle AppsスクリプトへのIMPORTXML
- 2. Googleスプレッドシート自動インクリメントの日付の値が機能しない
- 3. 自動タブ付けスクリプトはワードプレスでは機能しません
- 4. 自動インポートスクリプトが機能しない
- 5. 自動リンクが機能しない
- 6. オーバーフロー:Firefoxで自動機能しない
- 7. JS自動クリックが機能しない
- 8. エラー:自動機能
- 9. jQuery調査自動サイズ/自動表示が機能しない
- 10. LabVIEW自動しきい値
- 11. 自動フォーム投稿機能付きURL
- 12. 自動更新機能付きMVCパーシャルビュー
- 13. UILabelの自動スクロール機能
- 14. は自動的に私は、この機能の自動バージョンを探していた値ではない式
- 15. URLがPythonスクリプトで開いているときに自動保存されたパスワードが機能しない
- 16. スクリプトが機能しない
- 17. webpackの自動返信機能が動作しない
- 18. 自動開始機能JavaScript
- 19. 自動補完機能Java
- 20. 自動的に機能
- 21. Appcelerator自動機能テスト
- 22. AJAX自動保存機能
- 23. Java自動クローズ機能の動作
- 24. Mac OSでのPython GIMPスクリプトの実行
- 25. 自動ドロップ機能と自動更新機能を備えたHTMLドロップダウンメニュー
- 26. Nomiタブレットで自動起動(BOOT_COMPLETED)が機能しない
- 27. 自動追加機能が追加で動作しない
- 28. Eclipse PyDevの自動インポートが正しく機能しない
- 29. NSTextViewの自動スペルチェックが正しく機能しない
- 30. 入力ボタン、onclickのJavaスクリプト機能が起動しない
ちょうど私が探していたもの、ありがとう。 GIMP_HISTOGRAM_RGBであるget-histのchanパラメータをUIから呼び出された値に一致させるために変更する必要がありました。 –