2011-02-02 17 views
7

मेरा आईफोन एप्लिकेशन AVFoundation के AVCaptureSession का उपयोग कर कैमरे से रीयलटाइम डेटा कैप्चर करता है। मैं उस डेटा को रनटाइम में अपनी प्रतिनिधि विधि में एक्सेस करने में सक्षम हूं और इसमें से एक छवि बना सकता हूं। यह CGImage, UIImage या सिर्फ कच्चा डेटा (CMSampleBufferRef) हो सकता है।छवि ल्यूमिनेंस/चमक

जो मैं करने की कोशिश कर रहा हूं वह उस डेटा (चमक) की चमक, चमक की गणना करना है। या यह कुछ अन्य मूल्य हो सकता है जो मुझे इंगित कर सकता है कि इनपुट प्रकाश कितना उज्ज्वल है।

क्या इस मूल्य को प्राप्त करने का कोई मानक तरीका है? शायद ओपनजीएल का उपयोग कर।

अग्रिम धन्यवाद।

उत्तर

13

बस अपनी छवि को YUV format पर बदलें और लुमा चैनल के औसत की गणना करें। रंग रूपांतरण एक ठेठ ऑपरेशन है और किसी भी सभ्य छवि प्रसंस्करण ढांचे का समर्थन करता है। उदाहरण के लिए, ओपनसीवी (आपने ओपनजीएल कहा है, लेकिन वास्तव में छवि प्रसंस्करण के साथ कुछ भी करने की ज़रूरत नहीं है, मुझे लगता है कि आप ओपनसीवी का मतलब है) CvtColor है।

आप इस तरह के एक ढांचे के काम नहीं है, तो लेकिन पिक्सेल तीव्रता की पहुंच है, तो आप समीकरण का उपयोग कर सकते हैं:

Y' = 0.299*R + 0.587*G + 0.144*B 

लुमा चैनल प्राप्त करने के लिए, और फिर औसत की गणना। आर, जी और बी क्रमशः लाल, हरे और नीले चैनल का प्रतिनिधित्व करते हैं।

संपादित

ध्यान दें कि यह संभव है कि अपने कैमरे अपने एपर्चर को संशोधित करके उज्ज्वल/अंधेरे दृश्यों के लिए क्षतिपूर्ति करेगा। यह कैमरा-निर्भर है, लेकिन मुझे लगता है कि अधिकांश कैमरे ऐसा करते हैं - अन्यथा आपकी तस्वीरें या तो संतृप्त (शुद्ध सफेद) या सादे काले हो सकती हैं - किसी भी मामले में, बेकार। मानव आंखें वास्तव में do the same thing

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

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

+0

धन्यवाद, मुझे लगता है कि काम करना है। मैं इसे आज़मा दूंगा और परिणाम यहां पोस्ट करूंगा। – krafter

+0

मेरी संपादित टिप्पणी पर एक नज़र डालें - मैंने एक संभावित समस्या की पहचान की है और कुछ तरीकों से आप इसे हल कर सकते हैं। – misha

+0

हां, यह वास्तव में काम करता है: पिक्सेल जानकारी प्राप्त करना इसे रंग की तीव्रता में विभाजित करना, फिर जैसा कि आपने यहां दिखाया है, वाई की गणना करना। चूंकि कैमरे को समायोजित करने से पहले मुझे छोटे (तेज़) प्रकाश पल्सेशन की औसत चमक मूल्य की आवश्यकता है, इसलिए यह विधि अच्छी तरह से काम करती है। एक बार फिर धन्यवाद। – krafter