25700
正直なところ、コマンドラインの値が何を達成する必要があるのか、私にはよくわかりません。
ただし、より強力な-fx
演算子を使用して、別のコマンドラインを使用することをお勧めします。見た目はもう少し複雑ですが、うまくいけばもっと直感的に理解できます...
しかし、最初に、私はあなたの説明を見ていて120
、現在のR、G、およびBの色の値のそれぞれから固定数を減算したいと思っていることがわかります。つまり、これは灰色のピクセルカラーです...そしてImageMagickのカラー組み込みカラーリストで調べることができるように、その名前はgray47
次のとおりです。
convert -list color | grep '(120,120,120)'
gray47 srgb(120,120,120) X11 XPM
grey47 srgb(120,120,120) SVG X11
これにより、次のコマンドが表示されます。
convert \
input.jpg \
-channel red -fx 'r - gray47' \
-channel green -fx 'g - gray47' \
-channel blue -fx 'b - gray47' \
output.jpg
このように、またはコマンドを作成すると、将来必要になった場合に、簡単に導き出せる変更に目を向けることができます...
結果のポップアップウィンドウを(ファイルに書き込まずに)すぐにプレビューするには-show:
、次のように出力として使用することもできます。
convert \
input.jpg \
-channel red -fx 'r - gray47' \
-channel green -fx 'g - gray47' \
-channel blue -fx 'b - gray47' \
-show:
アップデート
各ピクセルの実際の違いを確認したい場合は、ImageMagickに各ピクセルのカラー値を出力させることができます。
convert input.jpg input.txt
convert output.jpg output.txt
.txtファイルの形式は、最初の列がPixelにゼロベースの座標を与えることがわかっていれば、非常に理解しやすいものです。つまり、123,456:
124番目(!)の列、457番目()の行を意味します。
これで、Gimpに頼る必要なしに、自動化されたスクリプトバージョンでも2つの.txtファイルを心ゆくまで比較できます。:-)
input.txt
Perl、Ruby、Python、またはShellscriptを使用して各ピクセル値に適用し、各チャネルから値をそらし、output2.txt120
として保存してから、JPEGに変換することもできます。
convert output2.txt output2.jpg
次に、2つの出力画像間のピクセルの違いを探します。
compare output.jpg output2.jpg delta.jpg
compare output.jpg output2.jpg view:
真っ白な平面は「違いがない」ことを意味し、赤いピクセルはある種のデルタを示唆します。
今、その答えが私に賛成票を獲得しない場合、私はどちらがそうなるかわかりません... :-)