javascript सफेद संतुलन(रंग दमन) सूत्र?




python image-processing (2)

इस मामले में मैं कोई विशेषज्ञ नहीं हूं:

मुझे नहीं लगता कि आपका दृष्टिकोण काम करना चाहिए (भौतिक विज्ञान की ओर से)

हरे रंग की पृष्ठभूमि आपके चरित्र पर चमकता है जो चरित्र की सतह पर प्रकाश जोड़ रहा है। तो आपको उस (अवांछित प्रकाश) को हटाने की आवश्यकता है आप बदले में भूरे रंग के सभी हरे रंग की पिक्सल बदल रहे हैं और यह मेरी राय में गलत है। अगर आपका लड़का हरी टी-शर्ट है तो क्या होगा?

मैं इस तरह इस तरह का दृष्टिकोण होगा:

सबसे पहले मुझे आशा है कि आप अपने दृश्य सेट पर निर्बाध रोशनी हालत प्राप्त करेंगे अन्यथा यह उचित 3 डी रोशनी / बिखराव विश्लेषण के बिना काम नहीं करेगा जो कि एक बड़ा काम है और आपको अपने दृश्य के पूर्ण 3 डी मॉडल के लिए भी आवश्यकता होगी।

  1. पहले वस्तुओं की स्थिति में बिखरे हुए प्रकाश की मात्रा का पता लगाएं।

    बस अपने व्यक्ति की अनुमानित स्थिति में श्वेतपत्र पत्रक रखें। तस्वीर ले लीजिये। उसके बाद आप शीट की छवि को अपने औसत रंग की गणना कर सकते हैं और गणना करें कि कितना हरा रंग सफेद में जोड़ा गया है।

    c[i]=c0[i]+c0[i]*m[i]
    • c पिक्सेल रंग (शीट का औसत रंग)
    • c0 ऑब्जेक्ट रंग (असली ऑब्जेक्ट कलर ... सफ़ेद लेकिन c साथ स्केल में होना चाहिए जो कि दृश्य चरण सेट तक पहुंच के बिना थोड़ा मुश्किल हो सकता है)
    • m पैमाने (यह वही है जो हमें चाहिए)
    • i चैनल

    इससे 3 रैखिक समीकरणों की व्यवस्था होगी, इसलिए इसे से m गणना करें। यह पृष्ठभूमि रंग पर अपरिवर्तनीय है इसलिए यह किसी रंग के लिए काम करेगा ...

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

    <- यह मैंने निकाला दांतों की छवि है)

    float m[green]=float(avg[green]-avg[blue])/float(avg[blue]);
    • सी 0 औसत रंग का नीला चैनल है
    • सी औसत रंग का हरा चैनल है

    एम के अन्य सभी चैनल शून्य हैं (इस मामले के लिए) मत भूलो कि m[] float !!!

  2. अब छवि से रोशनी को हटा दें

    समान समीकरण के अनुसार c0 करें:

    c0[i]=c[i]/(1.0+m[i])
    • c संक्रमित छवि पिक्सेल रंग
    • c0 सही छवि पिक्सेल रंग
    • m पैमाने (चरण # 1 में गणना)
    • i चैनल (आर, जी, बी)

    प्रत्येक पिक्सेल प्रत्येक चैनल करें ... यह मूल छवि है c :

    यह सही छवि है c0 :

    यह c-c0 :

    जैसा कि आप देख सकते हैं कि कुछ हरे रंग को पृष्ठभूमि से भी लिया जाता है लेकिन यह ठीक है क्योंकि पृष्ठभूमि भी प्रकाशित होती है !!! इसके अलावा कलाई अधिक हरी होती है, लेकिन यह हो सकता है कि मुझे लगता है कि यह दांत से बहुत दूर है और दीवार के करीब भी हो सकता है ... क्योंकि यह ऑब्जेक्ट की स्थिति पर बहुत निर्भर है (यदि प्रकाश यह काफी सहज नहीं है) का उल्लेख नहीं करने के लिए छाया में है ...

मुझे थोड़ा सा रंग गणित के साथ मदद की ज़रूरत है। (आरजीबीए) मैं वास्तव में हरे रंग की पृष्ठभूमि को प्रभावित किए बिना एक चरित्र पर हरे रंग की मात्रा को कम करने की कोशिश कर रहा हूं। दृश्य प्रभावों के लिए ग्रीन स्क्रीन

तो यहां मेरे पास क्या है:

मेरे पास हरी स्क्रीन पर एक लड़का है

अभिव्यक्ति का उपयोग करना: g>(r+b)/2 ? (r+b)/2:g g>(r+b)/2 ? (r+b)/2:g एक्सप्रेशन कहती है कि अगर हरा रंग का मान 2 से विभाजित लाल और नीले रंग की राशि से अधिक है, तो यह हरा उस राशि पर सेट किया जाएगा। उस अभिव्यक्ति को चलाने से मुझे दूसरी छवि मिल जाएगी आप देख सकते हैं कि हरे रंग को उस आदमी से पूरी तरह से हटा दिया जाता है, जिसे मैं चाहता हूं, लेकिन यह पृष्ठभूमि से भी हरा लेता है और यह भूरा बनाता है, जिसे मैं नहीं चाहता।

यह छवि यहां दी गई है कि कितना हरा हटा दिया गया है। मैं इसे दूसरी से पहली छवि को घटाकर मिलता हूं। तो दो के बीच इसका अंतर

क्या कोई मुझे यह समझाने में मदद करता है कि मैं किसी व्यक्ति के हरे रंग को कैसे हटा सकता हूं, न कि अभिव्यक्ति / सूत्र के माध्यम से पृष्ठभूमि को? मैंने हरे रंग की दबाना करने की कोशिश की है, जिसका मतलब है, अभिव्यक्ति लिखिए: किसी भी हरे रंग के पिक्सेल के लिए जो एक निश्चित मूल्य के नीचे होता है जो पृष्ठभूमि हरे रंग के बराबर नहीं है, इसे काला करें यह थोड़े काम करता है, लेकिन उसके बालों जैसे ठीक किनारों पर बहुत कठोर काम करता है

नीचे वांछित परिणाम है जो मैंने बहुत सारे रंग सुधार और ग्रेडिंग करके हासिल किया है। मुझे अभिव्यक्ति के द्वारा इस परिणाम प्राप्त करना अच्छा लगेगा

और यहाँ अंतिम परिणाम है ये बहुत अच्छा दिखता है। यह छवि चरित्र से हरे रंग की गई है, लेकिन पृष्ठभूमि नहीं है मुझे दूसरी छवि के ऊपर की छवि को जोड़कर यह मिला है। मैंने एक अलग स्क्रीन बनाई है ताकि आप अंतर देख सकें। ज्यादातर जैकेट और बालों में दिखाई देते हैं


आपके विचारों और विचारों के लिए सबको धन्यवाद। हर टिप्पणी एक चिंगारी थी जिसने मुझे नेतृत्व किया, जो मुझे लगता है, एक समाधान के निकटतम। यह अधिक काम की आवश्यकता है यदि आप अपनी मुट्ठी पर करीब से नजर डालते हैं, तो आप इसे घृणा तोड़ सकते हैं। इसके लिए अगला कदम प्रभाव के वजन को प्रभावित करने के लिए समायोज्य मूल्यों में निर्माण करना है।





rgba