एक प्रोग्राम लिखें जो एक मानक ट्रुकरोलर इमेज और एक 24-बिट आरजीबी रंग (0 से 255 तक तीन संख्या) में लेता है । इनपुट छवि को संशोधित करें (या समान आयामों के साथ एक नई छवि आउटपुट करें) जैसे कि इसका औसत रंग बिल्कुल एकल रंग है जो इनपुट था। आप इसे प्राप्त करने के लिए किसी भी तरह से इनपुट छवि में पिक्सेल को संशोधित कर सकते हैं, लेकिन लक्ष्य रंग परिवर्तन को दृष्टिगत रूप से संभव नहीं बनाना है ।
औसत रंग एक आरजीबी छवि के वास्तव में तीन का एक सेट है गणित का मतलब , प्रत्येक रंग चैनल के लिए एक। औसत लाल मान, कुल पिक्सेल (गोल छवि क्षेत्र) द्वारा विभाजित छवि में सभी पिक्सेल में लाल मानों का योग है, जो निकटतम पूर्णांक तक गोल है। हरे और नीले औसत की गणना एक ही तरीके से की जाती है।
यह पायथन 2 ( पीआईएल के साथ ) स्क्रिप्ट अधिकांश छवि फ़ाइल स्वरूपों के औसत रंग की गणना कर सकती है:
from PIL import Image
print 'Enter image file'
im = Image.open(raw_input()).convert('RGB')
pixels = im.load()
avg = [0, 0, 0]
for x in range(im.size[0]):
for y in range(im.size[1]):
for i in range(3):
avg[i] += pixels[x, y][i]
print 'The average color is', tuple(c // (im.size[0] * im.size[1]) for c in avg)
(यहां भी इसी तरह के औसत रंग कार्यक्रम हैं , लेकिन वे ठीक उसी तरह की गणना नहीं करते हैं।)
आपके कार्यक्रम के लिए मुख्य आवश्यकता यह है कि किसी भी इनपुट छवि के लिए, उसके संबंधित आउटपुट का औसत रंग बिल्कुल उस रंग से मेल खाना चाहिए जो कि इनपुट के रूप में है - जैसा कि पायथन स्निपेट या कुछ समकक्ष कोड द्वारा देखा गया है। आउटपुट इमेज में इनपुट इमेज के समान सटीक आयाम भी होने चाहिए।
तो आप तकनीकी रूप से एक प्रोग्राम प्रस्तुत कर सकते हैं जो पूरे इनपुट को निर्दिष्ट औसत रंग को रंग देता है (क्योंकि औसत हमेशा वह रंग होगा), लेकिन यह एक लोकप्रियता प्रतियोगिता है - सबसे अधिक संख्या में वोटों के साथ सबमिशन जीत जाएगा , और ऐसा तुच्छ सबमिशन आपको कई अपवोट नहीं मिलेगा। मानवीय विचारों में विचित्रताओं का लाभ उठाने, या छवि को सिकोड़ने और उसके चारों ओर रंगीन सीमा खींचने जैसे अद्भुत विचारों (उम्मीद) से आपको वोट मिलेंगे।
ध्यान दें कि औसत रंगों और छवियों के कुछ संयोजनों में अत्यधिक ध्यान देने योग्य रंग परिवर्तन की आवश्यकता होती है। उदाहरण के लिए, यदि मैच के लिए औसत रंग काला था (0, 0, 0), किसी भी इनपुट छवि को पूरी तरह से काला बनाने की आवश्यकता होगी क्योंकि यदि किसी भी पिक्सेल में गैर-शून्य मान थे, तो वे औसत गैर-शून्य बना देंगे ( राउंड-ऑफ त्रुटियों को छोड़कर)। मतदान करते समय ऐसी सीमाओं को ध्यान में रखें।
परीक्षण छवियाँ
कुछ छवियों और उनके डिफ़ॉल्ट औसत रंगों के साथ खेलने के लिए। पूर्ण आकार के लिए क्लिक करें।
A. औसत (127, 127, 127)
से fejesjoco के सभी रंगों के साथ चित्र का जवाब । अपने ब्लॉग पर मूल पाया ।
बी। औसत (62, 71, 73)
योकोहामा । Geobits द्वारा प्रदान किया गया ।
C. औसत (115, 112, 111)
टोक्यो । Geobits द्वारा प्रदान किया गया ।
डी। औसत (154, 151, 154)
एस्चर का झरना । मूल ।
ई। औसत (105, 103, 102)
शास्ता पर्वत । मेरे द्वारा प्रदान किया गया।
एफ। औसत (75, 91, 110)
टिप्पणियाँ
- आपके प्रोग्राम का उपयोग करने वाले सटीक इनपुट और आउटपुट प्रारूप और छवि फ़ाइल प्रकार बहुत मायने नहीं रखते हैं। बस यह सुनिश्चित करें कि यह स्पष्ट है कि अपने कार्यक्रम का उपयोग कैसे करें।
- यह शायद एक अच्छा विचार है (लेकिन तकनीकी रूप से एक आवश्यकता नहीं है) कि अगर एक छवि में पहले से ही लक्ष्य औसत रंग है, तो इसे आउटपुट होना चाहिए।
- कृपया औसत रंग इनपुट (150, 100, 100) या (75, 91, 110) के साथ परीक्षण छवियों को पोस्ट करें, ताकि मतदाता अलग-अलग समाधानों में एक ही इनपुट देख सकें। (इससे अधिक उदाहरण पोस्ट करना ठीक है, यहां तक कि प्रोत्साहित भी किया गया।)