GIMP’de iki resim arasında şeffaf resim olarak fark alın


21

İki imgem var Ave Bbirçok bölgede benzer.

Bir resim oluşturmak istiyorum Cki

B = C on top of A

nerede Cmümkün olduğunca şeffaf olmalıdır. on top ofnormal katman süperpozisyonudur.

Yani ve Carasında bir çeşit fark var . Eğer ve özdeş ise, o zaman tamamen şeffaftır. Eğer ve çok farklı, o zaman onların neredeyse özdeş olacaktır .ABABCABCB


ImageMagick kullanan Yığın Taşması ile ilgili bu sorunun harika bir cevabı var: stackoverflow.com/questions/5132749/…
AB

Yanıtlar:


23

Bir katman maskesi oluşturmak için "fark" katman modunu kullanabilir ve bu şekilde B'ye uygulayabilirsiniz:

  1. Her iki resmi de katmanlar halinde açın, altta A, üstte B
  2. Katmanın iletişim kutusunda B'nin katman modunu "fark" olarak işaretleyin. Şimdi görseli görmelisin ki çoğunlukla siyah, görüntüler birbirine benziyor, renkli alanlar farklı alanları işaretliyor. Bununla birlikte, bu renkler istediğiniz gibi B'nin renkleriyle eşleşmiyor
  3. B üzerinde hesaplanan etkinin bir kopyasını almak için Düzen-> Kopya görünür
  4. Katman B'yi çoğalt, modunu tekrar "Normal" olarak değiştir (bu katmana C diyelim)
  5. Katmanlar menüsünde, C'ye bir katman maskesi ekleyin (Katman-> Maske-> Katman Maskesi Ekle).
  6. Maske seçiliyken, 3. adımda kopyalanan içeriği yapıştırın (düzenle-> yapıştır).
  7. Yapıştırılan içeriği katman maskesine tutturun (layer-> Anchor layer)

İşte siz A ve B katmanlarını görünmez hale getirin ve istediğinize çok yakın olmalısınız. Katman maskesinde yapılacak diğer işlemler (Renkler-> eğri kullanmanızı öneririz), C katındaki alanların opaklığını / saydamlığını ayarlayabilir.

güncelleme Geçenlerde buna benzer bir soruyu Stackoverflow'ta benzer bir şekilde cevapladım ; OP, görevi programlı olarak gerçekleştirmek istedi (Python + Python-görüntüleme-kütüphanesini kullanarak) bu cevapla ilgileniyorum.


On the layer's dialog, mark B's layer mode as "difference". Pardon, ne? Katmanlar aracı penceresine bakıyorum ve eğer B katmanına sağ tıklarsam, a'ya benzeyen bir şey göremiyorum layer mode. Bulduğum en yakın şey Add Layer Mask, ama bahsettiğiniz şeyin bu olduğunu sanmıyorum. V2.8.22 kullanarak.
Adrian,

katman seçiliyken, katman modu, sağ tıklama menüsünden değil, katmanlar iletişim kutusunun üstündeki açılır menüden seçilebilir.
jsbueno

6. adımda biraz kafa karışıklığı veya sorun yaşıyorum - içeriğin yeni bir katmana yapıştırılması, "C maskesi" seçilse bile, ofsetli "Yüzer Seçim (Yapıştırılmış Katman") adlı dördüncü bir katman yapılması gibi görünüyor Orijinal konumundan - görünmesi gereken bu mu?
Code Jokey

Hedefine (Ctrl-H) tutturmadan "kayan bir seçim" dir. Yapıştırırken (Ctrl-V) maskenin etkin olduğundan emin olun, aksi takdirde bağlantı başka bir yere gidebilir.
ksenoit

5

Bunu yapmak için basit bir yöntem var:

Görüntüleri iki katman halinde açın, Filtreler - Animasyon - Optimize Et (Fark) komutunu çalıştırın, şimdi alt katmandan ve sonuçta farklı bir katmandan oluşan görüntüyü almalısınız.

Bu şeyler yalnızca kısmi şeffaflığa sahipseniz karmaşıklaşır, çünkü filtre onu çıkarır.
İşte bu dava için bulduğum bir geçici çözüm:

  • Her iki katmandaki Alfa Kanalını kaldırın (eylem içerik menüsündedir)

Görüntüler beyaz arka plan alacaktır ancak endişelenmeyin, daha sonra geri alacağız.

  • Filtreler - Animasyon - Optimize Et (Fark)

Şimdi kısmi şeffaflık olan yerlerde beyaz arka planlı fark katmanına sahibiz, ancak bu piksellerin saydam olması gerekir, bu nedenle farkın şeklini alır ve bu şeklin görüntüsünü orijinal üst katmandan kopyalarız. Yeni oluşturulan diff katmanının seçildiğinden emin olun ve devam edin:

  • Katman - Görüntü Boyutunda Katman
  • Düzen - Kopyala (Ctrl + C)
  • Orijinal görüntüye dön
  • Geri al, Geri Sayımı katmanlarımıza geri döndürmek için Geri Al
  • Düzenle - Farklı Yapıştır - Yeni Katman
  • Yapıştırılan diff katmanındaki Seçime Alfa (bağlam menüsünde)
  • Yapıştırılan diff katmanını silin
  • Üst katmanın seçildiğinden emin olun ve bundan Kopyala (Ctrl + C)
  • Şimdi farkınız var, sadece yapıştırın (Ctrl + V) ve ondan yeni bir katman oluşturun.

Elbette, hiçbir sihir olmaz ve kısmen saydam üst katman, alt katmanın renklerini değiştirmez veya saydamlığını azaltamaz, bu nedenle, yalnızca üst katmanın değiştirilmiş piksellerinin alt katmanı kapladığı uzantı durumları içindir.


PS jsbueno'nun yöntemi benim için işe yaramadı.


1

GIMP "Renk silme" adlı bir fırça moduna sahiptir. X ile renklendirilmiş bu fırçayı, belirli piksel P1'e uygulamak, alfa kanalına sahip P2 pikselini normal modda X ile pikselle karıştırmanın piksel P1 ile sonuçlanmasına neden olan bir piksel P2 oluşturur. Seçilen bölgeye veya tüm görüntüye uygulanan aynı efekt, "Renkten Alfaya" işlemi kullanılarak elde edilebilir .

Fırça modu "Klonlama aracı" na da uygulanabilir. Bu durumda, arka plan görüntüsü A'nın piksellerinden renk almak ve sonuçtaki B görüntüsünün piksellerine uygulamak mümkündür. Kalan görüntü istenen görüntü C'dir.

Detaylarda C görüntüsünün oluşturulması şöyledir:

  1. A ve B görüntülerini katman olarak yerleştirin (B'nin altındaki A).
  2. B görüntüsünü çoğaltın ve C olarak adlandırın. A ve B arasına yerleştirin. B görüntüsünü gizleyin.
  3. "Aracı Kopyala" yı seçin. "Takım seçenekleri" panelinde aşağıdaki seçenekleri ayarlayın: Mod: "Rengi sil"; Fırça: Keskin yuvarlak fırça kullanın ("Sertlik 100") Boyut: Tüm görüntüyü bir kerede kolayca boyamak için fırçayı büyütün.
  4. Konumunu klonlayıp hatırlayacağınız bir yer seçmek için sol üst piksel üzerinde bir katman ve CTRL + seçin (% 100 zoom için (1,1),% 50 için (2,2) vb.)
  5. Şimdi C katmanını seçin ve sol üstten boyamaya başlayın ve fırçayı kaldırmadan tüm resmi kaplayın. Görüntünün değişmediği anlaşılıyor. Ancak A katmanını gizlerseniz, C katmanının artık istenen görüntü içerdiğini görürsünüz.
  6. Sonucu kontrol et: A katmanını ve C katmanını göster. Görüntülerin aynı göründüğünden emin olmak için B katmanının görünürlüğünü değiştir. (B katmanı için "Fark" modunu da seçebilirsiniz, bu durumda kesinlikle siyah görüntü elde etmelisiniz.)

Not: Bu yöntem, arka plan görüntüsü opak ise tarif edildiği gibi çalışır. Arka plan görüntüsünün saydam bölümlerinde, A'nın üstüne C'nin karıştırılması görüntü B'den farklı görünür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.