GIMP में पारदर्शी छवि के रूप में दो छवियों के बीच अंतर प्राप्त करें


21

मेरी दो छवियां हैं Aऔर Bजो कई क्षेत्रों में समान हैं।

मैं एक छवि बनाना चाहता हूं Cताकि

B = C on top of A

जहां तक Cसंभव हो पारदर्शी होना चाहिए। on top ofसामान्य परत सुपरपोजिशन है।

तो Cकुछ अंतर है Aऔर B। अगर Aऔर Bसमान हैं, तो Cपूरी तरह से पारदर्शी है। अगर Aऔर Bबहुत अलग हैं, तो उनका Cलगभग समान होगा B


स्टैक ओवरफ्लो पर इस सवाल का एक बड़ा जवाब है जो ImageMagick का उपयोग करता है: stackoverflow.com/questions/5132749/…
AB

जवाबों:


23

आप लेयर मास्क बनाने के लिए "डिफरेंस" लेयर मोड का उपयोग कर सकते हैं, और इसे इस तरह B पर लागू कर सकते हैं:

  1. परतों के रूप में दोनों छवियों को खोलें, नीचे तल पर, शीर्ष पर बी
  2. परत के संवाद पर, B के लेयर मोड को "अंतर" के रूप में चिह्नित करें। अब आपको यह देखना चाहिए कि चित्र ज्यादातर काले हैं, चित्र समान हैं, रंगीन क्षेत्रों के साथ उन क्षेत्रों को चिह्नित करते हैं जो अलग-अलग हैं। हालाँकि, ये रंग, बी के रंगों से मेल नहीं खाते, जैसा आप चाहते हैं
  3. संपादित करें-> B पर परिकलित प्रभाव की प्रतिलिपि प्राप्त करने के लिए दृश्यमान प्रतिलिपि बनाएँ
  4. डुप्लिकेट लेयर बी, इसे वापस "सामान्य" मोड में बदलें (आइए इस परत को सी कहते हैं)
  5. परत मेनू पर, C (परत-> मास्क-> परत मास्क जोड़ें) में एक परत मुखौटा जोड़ें।
  6. चयनित मुखौटा के साथ, चरण 3 में संपादित की गई सामग्री को पेस्ट करें (संपादित करें-> पेस्ट)।
  7. परत के मुखौटे पर चिपकाई गई सामग्री (परत-> लंगर परत)

वहां आप हैं - लेयर्स ए और बी को अदृश्य बनाएं, और आप जो चाहते हैं, उसके बहुत करीब होना चाहिए। लेयर मास्क पर आगे के ऑपरेशन (मैं कलर्स-> कर्व का उपयोग करने की सलाह देता हूं) लेयर सी पर क्षेत्रों की अस्पष्टता / पारदर्शिता को समायोजित कर सकता है।

अपडेट मैंने हाल ही में स्टाकेवरफ्लो पर इस तरह के एक सवाल का जवाब दिया , जहां ओपी प्रोग्राम को प्रोग्रामिक रूप से निष्पादित करना चाहता था (पायथन + पायथन-इमेजिंग-लाइब्रेरी का उपयोग करके) - मैंने उस प्रश्न पर पूरा कार्यक्रम पोस्ट किया है और यह किसी के लिए भी मददगार हो सकता है इस उत्तर में रुचि।


On the layer's dialog, mark B's layer mode as "difference". माफ करना क्या? मैं लेयर्स टूल विंडो को देख रहा हूं, और अगर मैं लेयर B पर राइट क्लिक करता हूं, तो मुझे ऐसा कुछ दिखाई नहीं देता है, जो ए जैसा दिखता है layer mode। मेरे द्वारा पाया गया निकटतम है Add Layer Mask, लेकिन मुझे नहीं लगता कि आप इसका उल्लेख कर रहे हैं। V2.8.22 का उपयोग करना।
एड्रियन

चयनित परत के साथ, लेयर डायल के शीर्ष पर ड्रॉप-डाउन पर लेयर मोड को चुना जा सकता है, न कि राइट-क्लिक मेनू से।
jsbueno

मुझे चरण 6 के साथ थोड़ा भ्रम या परेशानी हो रही है - यह सामग्री को एक नई परत में चिपकाने लगता है, यहां तक ​​कि "सी मास्क" के साथ, "फ्लोटिंग सिलेक्शन (पास्टेड लेयर)" नामक चौथी परत बना रहा है, जो ऑफसेट है मूल स्थिति से - यह है कि जिस तरह से यह देखना चाहिए?
कोड जॉकी

यह एक "फ़्लोटिंग चयन" है जब तक आप इसे अपने गंतव्य (Ctrl-H) पर "लंगर" नहीं करते। सुनिश्चित करें कि जब आप पेस्ट करें (Ctrl-V) तो मास्क सक्रिय है अन्यथा एंकरिंग कहीं और जा सकती है।
xenoid 23

5

इसे करने की एक सरल विधि है:

छवियों को दो परतों के रूप में खोलें, फ़िल्टर - एनीमेशन - ऑप्टिमाइज़ (अंतर) चलाएं, आपको वही परिणामी छवि प्राप्त करनी चाहिए जो अब नीचे की परत से बनी है और उसके ऊपर एक अलग परत है।

यदि आपके पास आंशिक पारदर्शिता है, तो चीजें जटिल हो जाती हैं, क्योंकि फ़िल्टर इसे हटा देता है।
इस मामले के लिए मुझे एक समाधान मिला है:

  • दोनों परतों पर अल्फा चैनल निकालें (कार्रवाई संदर्भ मेनू में है)

छवियों को सफेद पृष्ठभूमि प्राप्त होगी, लेकिन चिंता न करें, हम इसे बाद में पूर्ववत करेंगे।

  • फ़िल्टर - एनिमेशन - ऑप्टिमाइज़ (अंतर)

अब हमारे पास आंशिक पारदर्शिता के स्थानों पर सफेद पृष्ठभूमि के साथ अंतर परत है, लेकिन हमें उन पिक्सेल को पारदर्शी होने की आवश्यकता है, इसलिए हम अंतर का आकार लेंगे और मूल शीर्ष परत से इस आकृति की छवि को कॉपी करेंगे। सुनिश्चित करें कि नई उत्पन्न अंतर परत का चयन किया गया है और जारी है:

  • परत - छवि आकार के लिए परत
  • संपादित करें - कॉपी करें (Ctrl + C)
  • मूल छवि पर लौटें
  • पूर्ववत करें, हमारी परतों में पारदर्शिता लौटने के लिए पूर्ववत करें
  • संपादित करें - के रूप में चिपकाएँ - नई परत
  • पेस्ट से अलग परत पर अल्फा से चयन (संदर्भ मेनू में)
  • पेस्ट की गई भिन्न परत को हटाएं
  • सुनिश्चित करें कि शीर्ष परत चयनित है और उसमें से कॉपी (Ctrl + C)
  • अब आपके पास अंतर है, बस इसे पेस्ट करें (Ctrl + V) और इसे से एक नई परत बनाएं।

बेशक, कोई जादू नहीं होता है, और आंशिक रूप से पारदर्शी शीर्ष परत रंग में बदलाव नहीं करेगी या नीचे की परत की पारदर्शिता को कम नहीं करेगी, इसलिए यह केवल विस्तार के मामलों के लिए है, जहां शीर्ष परत के परिवर्तित पिक्सेल नीचे की परत को कवर करते हैं।


PS jsbueno का तरीका मेरे लिए कारगर नहीं रहा।


1

जीआईएमपी में एक ब्रश मोड है जिसका नाम "कलर इरेजिंग" है। इस ब्रश को रंगीन X के साथ रंगीन करने के लिए, निश्चित पिक्सेल P1 को कम अल्फा चैनल के साथ एक पिक्सेल P2 बनाता है, जिस तरह से सामान्य मोड में रंग X के साथ पिक्सेल के साथ P2 को सम्मिश्रण करने से पिक्सेल P1 निकलता है। एक ही प्रभाव, चयनित क्षेत्र या पूरी छवि पर लागू "रंग से अल्फा" कार्रवाई का उपयोग करके प्राप्त किया जा सकता है ।

ब्रश मोड को "क्लोन टूल" पर भी लागू किया जा सकता है। इस मामले में पृष्ठभूमि छवि ए के पिक्सल से रंग लेना संभव है और इसे परिणामी छवि बी के संबंधित पिक्सल पर लागू किया जा सकता है। जो छवि छोड़ दी गई है वह वांछित सी।

इमेज सी के निर्माण में निम्नलिखित हैं:

  1. छवियों ए और बी को परतों के रूप में रखें (ए नीचे बी)।
  2. छवि B को डुप्लिकेट करें और C को कॉल करें। इसे A और B के बीच रखें। छवि को छिपाएं B।
  3. "क्लोन टूल" चुनें। "टूल ऑप्शंस" पर पैन सेट निम्नलिखित विकल्प हैं: मोड: "मिटा रंग"; ब्रश: तेज गोल ब्रश ("कठोरता 100") का उपयोग करें आकार: ब्रश को आसानी से एक बार में सभी छवि को पेंट करने के लिए बड़ा करें।
  4. एक लेयर और CTRL + को ऊपर बाईं ओर पिक्सेल का चयन करें, जिसमें ऐसी जगह का चयन करें जहां से क्लोन किया जा सके और अपनी स्थिति को याद रख सकें (100% ज़ूम के लिए यह (1,1) होगा, 50% के लिए यह (2,2) आदि) होगा।
  5. अब लेयर सी का चयन करें और ऊपर से बाईं ओर पेंटिंग शुरू करें और ब्रश को उठाए बिना सभी छवि को कवर करें। ऐसा लग सकता है कि छवि नहीं बदलती। लेकिन अगर आप लेयर A को छिपाते हैं, तो आप देखेंगे कि लेयर C में अब वांछित छवि है।
  6. परिणाम की जाँच करें: परत A और परत C. C। टॉगल परत B दृश्यता सुनिश्चित करें कि चित्र समान दिखें। (आप परत बी के लिए मोड "अंतर" भी चुन सकते हैं, ऐसे मामले में आपको बिल्कुल काली छवि मिलनी चाहिए।)

नोट: यह तरीका वर्णन के अनुसार काम करता है यदि बैकग्राउंड इमेज अपारदर्शी है। पृष्ठभूमि छवि के पारदर्शी भागों पर, A के शीर्ष पर C सम्मिश्रण छवि B से अलग दिखता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.