1

ImageMagickを使用して、多数の画像の背景を削除しようとしています。ImageMagickのWebサイトには、これを行うためのさまざまな手法が記載されています。彼らはまた、これらのメソッドの好ましい組み合わせを含むシェルスクリプトbg_removal.shを便利に作成しました。

ただし、スクリプトでエラーが発生します。スクリプトを呼び出すときは、いくつかのあいまいさのパラメータに加えて、知っている場合は特定の背景色を指定します。のような明示的な背景色を渡すRGB(37,188,111)と、最終コマンドの次のフラグメントになります。

( +clone -sparse-color voronoi 0,0,RGB(37,188,111) )

..そしてそれはうまくいきます。ただし、bgcolorを渡さない場合、式は次のようになります。

( +clone -sparse-color voronoi 0,0,%[fx:p{0,0}] )

の引数の数が間違っているというメッセージが表示されて失敗します-sparse-color。別の関数に変更でき、機能します。

( +clone -sparse-color voronoi 0,0,%[pixel:p{0,0}] )

私はImageMagickについて十分に知らないので、fx関数が何をしているのか、そしてそれpixelが許容できる代替品であるかどうかを知ることができません。背景色を推測するために座標0,0で色を取得しようとしていると思いますが、正確にはわかりません。構文は0,0,%[fx:p{0,0}]正しいですか?

4

2 に答える 2

3

-fxピクセルに適用する数式または IM 固有の式を使用できるようにする演算子です-fx 'expression'

ImageMagick バージョン 6.2.10 以降でのみ、イメージ プロパティ エスケープ文字列内で '%[fx:...]' のようなエスケープ シーケンスを使用できるようになりました。したがって、これらの方法は両方とも v6.2.10 以降で機能するはずです。

%[fx:expression]
%[pixel:expression]

あなたの質問に関しては:はい、「ピクセルはfxの許容可能な代替品です」 。

そして式は、「現在の画像の左上のピクセルの色の値を返す」p{0,0}という意味です。

ImageMagick のバージョンを確認します。

 convert -version

の「引数の数が間違っている」ために完全な式が失敗する理由については、次の-sparse-colorとおりです。

  1. voronoiが でサポートされている方法に含まれているかどうかを確認し-sparse-colorます。

    convert -list sparse-color

    (そうであると仮定します -- そうでない場合は、おそらく別のエラー メッセージが表示されるでしょう。)

  2. の一般的な構文-sparse-colorは次のように文書化されています。

    -sparse-color method 'x,y color ...'

    これは、正しい数の引数を認識するために、追加の引用符を使用してスパースカラーを作成する必要があることを示唆しています。どうですか

    ( +clone -sparse-color voronoi '0,0 %[fx:p{0,0}]' )

    ??

于 2012-08-02T17:13:01.400 に答える
0

v7+ を使用しているにもかかわらず、fx 式が機能しないという問題に遭遇しました。コマンドを から に変更convertするmagickと、機能し始めました。これが他の誰かが壁に頭をぶつけないようにするのに役立つことを願っています.

于 2021-03-24T04:36:40.323 に答える