colors - आरजीबी को ग्रेस्केल/तीव्रता में कनवर्ट करना




language-agnostic rgb (5)

आरजीबी से ग्रेस्केल में कनवर्ट करते समय, ऐसा कहा जाता है कि आर, जी, और बी चैनलों के लिए विशिष्ट वजन लागू किया जाना चाहिए। ये वजन हैं: 0.2 9 8 9, 0.5870, 0.1140।

ऐसा कहा जाता है कि इसका कारण इन तीन रंगों के प्रति अलग मानवीय धारणा / संवेदनशीलता है। कभी-कभी यह भी कहा जाता है कि ये एनटीएससी सिग्नल की गणना करने के लिए उपयोग किए जाने वाले मान हैं।

हालांकि, मुझे वेब पर इसके लिए अच्छा संदर्भ नहीं मिला। इन मूल्यों का स्रोत क्या है?

इन पिछले प्रश्नों को भी देखें: here और here


आरजीबी को ग्रेस्केल में कनवर्ट करने के लिए सी में कुछ कोड है। ग्रेस्केल रूपांतरण के लिए आरजीबी के लिए उपयोग किया जाने वाला वास्तविक भार 0.3 आर + 0.6 जी + 0.11 बी है। ये वजन बिल्कुल महत्वपूर्ण नहीं हैं ताकि आप उनके साथ खेल सकें। मैंने उन्हें 0.25 आर + 0.5 जी + 0.25 बी बना दिया है। यह थोड़ा गहरा चित्र बनाता है।

नोट: निम्न कोड xRGB 32 बिट पिक्सेल प्रारूप मानता है

unsigned int *pntrBWImage=(unsigned int*)..data pointer..;  //assumes 4*width*height bytes with 32 bits i.e. 4 bytes per pixel
unsigned int fourBytes;
        unsigned char r,g,b;
        for (int index=0;index<width*height;index++)
        {
            fourBytes=pntrBWImage[index];//caches 4 bytes at a time
            r=(fourBytes>>16);
            g=(fourBytes>>8);
            b=fourBytes;

            I_Out[index] = (r >>2)+ (g>>1) + (b>>2); //This runs in 0.00065s on my pc and produces slightly darker results
            //I_Out[index]=((unsigned int)(r+g+b))/3;     //This runs in 0.0011s on my pc and produces a pure average
        }

इस पर जानकारी के लिए रंग पूछे जाने वाले प्रश्न देखें। ये मान आरजीबी मूल्यों के मानकीकरण से आते हैं जिन्हें हम अपने प्रदर्शन में उपयोग करते हैं। असल में, रंग पूछे जाने वाले प्रश्नों के मुताबिक, आपके द्वारा उपयोग किए जाने वाले मान पुराने हैं, क्योंकि वे मूल एनटीएससी मानक के लिए उपयोग किए जाने वाले मान हैं और आधुनिक मॉनीटर नहीं हैं।


मैंने पाया कि इस प्रकाशन को पिछले समान प्रश्न के उत्तर में संदर्भित किया गया है। यह बहुत ही उपयोगी है:

http://cadik.posvete.cz/color_to_gray_evaluation/

यह अलग-अलग परिणामों के साथ ग्रेस्केल छवियों को उत्पन्न करने के लिए विभिन्न तरीकों के 'टन' दिखाता है!


यह सब वास्तव में जरूरी है, मानव धारणा और सीआरटी बनाम एलसीडी अलग-अलग होगा, लेकिन आरजीबी तीव्रता नहीं है, L = (R + G + B)/3 क्यों नहीं और नई आरजीबी को एल, एल, एल में सेट करें?


ये मान व्यक्ति से अलग-अलग होते हैं, खासकर उन लोगों के लिए जो रंगीन हैं।







rgb