GIMPで2つの画像の違いを透明な画像として取得する


21

2つの画像がAありB、多くの地域で似ています。

画像を作成したいCので

B = C on top of A

どこでC可能な限り透明にする必要があります。on top of通常のレイヤーの重ね合わせです。

だから、C違いのいくつかの種類であるAとはBABが同一の場合、C完全に透過的です。場合AB非常に異なっている、そして彼らCとほぼ同一ですB


ImageMagickを使用するStack Overflowのこの質問に対する優れた答えがあります。stackoverflow.com/ questions / 5132749 /
AB

回答:


23

「差分」レイヤーモードを使用してレイヤーマスクを作成し、次のようにBに適用できます。

  1. 両方の画像をレイヤーとして開き、下にA、上にB
  2. レイヤーのダイアログで、Bのレイヤーモードを「差分」としてマークします。画像はほぼ同じで、色の付いた領域が異なる領域を示しているため、画像のほとんどが黒になっているはずです。ただし、これらの色は、必要に応じてBの色と一致しません
  3. 編集->コピーを表示、Bで計算された効果のコピーを取得
  4. レイヤーBを複製し、モードを「通常」に戻します(このレイヤーをCと呼びましょう)
  5. [レイヤー]メニューで、Cにレイヤーマスクを追加します([レイヤー]-> [マスク]-> [レイヤーマスクの追加])。
  6. マスクを選択した状態で、手順3でコピーした内容を貼り付けます(編集->貼り付け)。
  7. 貼り付けられたコンテンツをレイヤーのマスクに固定します(レイヤー->アンカーレイヤー)

レイヤーAとレイヤーBを非表示にします。必要なものに非常に近いはずです。レイヤーマスクに対する追加の操作([色]-> [曲線]を使用することをお勧めします)により、レイヤーCの領域の不透明度/透明度を調整できます。

アップデート私は最近、OPがプログラムでタスクを実行したいStackoverflowでこれに似た質問に答えまし(Python + Python-imaging-libraryを使用して)-私はその質問に完全なプログラムを投稿しました、それは誰にとっても役立つかもしれませんこの答えに興味があります。


On the layer's dialog, mark B's layer mode as "difference". すみません レイヤーツールウィンドウを見ています。レイヤーBを右クリックしても、のようなものは表示されませんlayer mode。私が見つけた最も近いはAdd Layer Mask、ですが、私はそれがあなたが言及しているものだとは思わない。v2.8.22を使用します。
エイドリアン

レイヤーを選択した状態で、右クリックメニューからではなく、レイヤーダイアログの上部にあるドロップダウンでレイヤーモードを選択できます。
jsbueno

ステップ6で少し混乱または問題があります-「Cマスク」を選択している場合でも、コンテンツを新しいレイヤーに貼り付け、「フローティング選択(貼り付けレイヤー)」という名前の4番目のレイヤーを作成しているようです元の位置から-それはそれが見えるべき方法ですか?
コードジョッキー

宛先に「アンカー」するまで(Ctrl-H)、「フローティング選択」です。貼り付けるときにマスクがアクティブになっていることを確認します(Ctrl-V)。そうしないと、アンカーが他の場所に移動する可能性があります。
ゼノイド

5

簡単な方法があります:

2つのレイヤーとして画像を開き、フィルター-アニメーション-最適化(差分)を実行します。下のレイヤーとその上のdiffレイヤーで構成される同じ結果の画像が得られるはずです。

フィルターはそれを削除するため、部分的な透明性がある場合のみ、物事は複雑になります。
この場合に私が見つけた回避策は次のとおりです。

  • 両方のレイヤーのアルファチャネルを削除します(アクションはコンテキストメニューにあります)

画像は白い背景になりますが、心配する必要はありません。後で元に戻します。

  • フィルター-アニメーション-最適化(差異)

部分的な透明度の場所に白い背景の差分レイヤーがありますが、これらのピクセルは透明である必要があるため、差分の形状を取り、元の最上位レイヤーからこの形状の画像をコピーします。新しく生成された差分レイヤーが選択されていることを確認して続行します。

  • レイヤー-レイヤーから画像サイズ
  • 編集-コピー(Ctrl + C)
  • 元の画像に戻る
  • 元に戻す、元に戻すとレイヤーに透明度が戻ります
  • 編集-名前を付けて貼り付け-新しいレイヤー
  • 貼り付けたdiffレイヤー上の選択範囲のアルファ(コンテキストメニュー内)
  • 貼り付けた差分レイヤーを削除します
  • 最上位のレイヤーが選択されていることを確認し、そこからコピー(Ctrl + C)
  • これで差分が得られました。貼り付け(Ctrl + V)し、そこから新しいレイヤーを作成します。

もちろん、魔法は発生せず、部分的に透明な最上層は色を変更したり、最下層の透明度を低下させたりしないため、最上層の変更されたピクセルが最下層を覆う拡張の場合のみです。


PS jsbuenoの方法はうまくいきませんでした。


1

GIMPには、「カラー消去」という名前のブラシモードがあります。カラーXで色付けされたこのブラシを明確なピクセルP1に適用すると、アルファチャネルが低下したピクセルP2が作成されます。通常モードでP2とカラーXのピクセルをブレンドするとピクセルP1になります。選択した領域または画像全体に適用される同じ効果は、「カラーからアルファへ」アクションを使用して実現できます。

ブラシモードは「クローンツール」にも適用できます。この場合、背景画像Aのピクセルから色を取得し、結果画像Bの対応するピクセルに適用することができます。残っている画像は目的の画像Cです。

画像Cの作成の詳細は次のとおりです。

  1. 画像AとBをレイヤーとして配置します(AはBの下)。
  2. 画像Bを複製し、Cと呼びます。AとBの間に置きます。画像Bを非表示にします。
  3. 「クローンツール」を選択します。[ツールオプション]ウィンドウで、次のオプションを設定します。モード:[色の消去]; ブラシ:シャープな丸いブラシ( "硬度100")を使用します。サイズ:ブラシを大きくして、すべての画像を一度に簡単にペイントします。
  4. Aレイヤーを選択し、左上のピクセルでCTRL +を押して、クローンを作成してその位置を記憶する場所を選択します(100%ズームの場合は(1,1)、50%の場合は(2,2)など)。
  5. レイヤーCを選択し、左上からペイントを開始し、ブラシを持ち上げずにすべての画像を覆います。画像は変わらないように見えるかもしれません。しかし、レイヤーAを非表示にすると、レイヤーCに目的の画像が含まれるようになります。
  6. 結果を確認します。レイヤーAとレイヤーCを表示します。レイヤーBの表示を切り替えて、画像が同じように見えるようにします。(レイヤーBの「差分」モードを選択することもできます。この場合、完全に黒い画像を取得する必要があります。)

注:このメソッドは、背景画像が不透明な場合に説明されているように機能します。背景画像の透明部分では、Aの上にCをブレンドすると画像Bとは異なって見えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.