Saydam ön plan ile görüntüden arka planı kaldırma


0

Sabit renkli bir arka plana sahip bir görüntüm var. Önünde çizilen saydamlığı olabilecek nesneler vardır. Algoritma anlamında, arkaplanı görüntüden çıkarmak için bir yol var mı, böylece arkaplanı olmayan saydam nesneler içeren bir görüntüyle bırakılmalı mıyım? Bunu kodumda yapmak istiyorum, böylece algoritma harika olurdu.

Yanıtlar:


0

Soruyu doğru anlarsam ve bize bahsetmediğiniz hiçbir ek bilginiz yoksa, bunun imkansız olacağına inanıyorum. Aşağıdaki kompozit görüntüyü göz önünde bulundurun:

                yeşilimsi daireler ile mavi dikdörtgen

Açıkçası mavi bir arka planı var. Şimdi, işte ön plan nesneleri:

                şeffaf sarı daire ve opak yeşil daire

İlk görüntüden ikinci görüntüyü almak için nasıl bir algoritmaya sahip olabileceğinizi anlamıyorum - çalışmak için yeterli bilgi yok.


Peki, daha fazla bilgiye sahipseniz ne yapabilirsiniz? Hangi ek bilgiler faydalı olabilir? Cevabın bir kısmı, ön plan nesnelerinin nerede olduğunu bilmeniz gerektiğidir. Bir ön plan nesnesi arka planla aynı renkse veya% 100 saydamsa ve kenarlığı yoksa görünmezdir ve varlığını bile çıkarabilen bir algoritma yoktur. (Ve üst üste gelirlerse, istifleme sırasını bilmek yardımcı olabilir. Bunu çıkarmak mümkün olabilir (yani, bir algoritma ile hesaplayın), ama bilmiyorum.)

Ancak, nesnelerin nerede olduğunu bildiğiniz göz önünde bulundurulursa, dikkate alın: F renginin ön plan nesnesi ve saydamlık T tarafından gizlenmiş B renginin bir arka planınız var. Gördüğünüz renk (C) nedir? C, B, F ve T'nin bir fonksiyonu olarak hesaplanabilir (Eğer T = 0, C = F; eğer T = 1 (% 100), C = B ise) B ve C'yi bilirsiniz; diğerini tanıyorsanız, F veya T'yi belirleyebilmeniz gerektiği anlamına gelir. 

Önceki paragrafta bahsettiğim istisnalar var. C = B ise, nesne görünmezdir, çünkü arka planla aynı renktedir (F = B) veya% 100 saydamdır (T = 1). F = B = C biliyorsanız, T'yi belirlemek imkansızdır. T = 1 biliyorsanız, F'yi belirlemek imkansızdır. Ancak en azından ikinci (T = 1) durumunda, sadece belirlemek istiyorsanız ön plan nesnesinin neye benzediği: beyaz görünüyor.

Birçok program bu işlevi uygular: PowerPoint (görüntüleri oluşturmak için kullandıklarım), Photoshop, Paint.NET, GIMP, vb. Ve muhtemelen belgelenmiştir. Sana bu işlevi araştırma önermek C=f(B,F,T) ve türetmek anlamaya F=f′(B,T,C)ve T=f″(B,F,C).


Bu benim ilk hisimdi. Ancak yukarıdaki resim netleştirdi. öyleyse istediğim şeyi elde etmek için hangi asgari ek bilgiye ihtiyacım var.
gaurav

Yaklaşık 20 saatten fazla (az ya da çok) düşündükten sonra (kapalı ve açık), ikinci sorunuzu nasıl cevaplayacağınızı ve aynı anda birincil sorunuzla ilgili size yardımcı olacağımı düşündüğüme inanıyorum.
Scott

C = f (B, F, T) fonksiyonunu bulduğumu düşünüyorum en.wikipedia.org/wiki/Alpha_compositing bunu deneyeceğim.
gaurav
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.