2010-07-30 15 views
6

के साथ हिस्टोग्राम बराबरता मैं अपने आईफोन ऐप में यूआईएममेज के लिए हिस्टोग्राम बराबर विधि (एचई) को लागू करने की कोशिश कर रहा हूं।रंग सुधार (आईफोन/उद्देश्य-सी)

http://en.wikipedia.org/wiki/Histogram_equalization

लेकिन यह कहते हैं::

मैं निम्नलिखित पढ़

फिर भी, यह ध्यान दिया जाना चाहिए कि लाल, हरा, और एक आरजीबी की ब्लू घटकों पर एक ही पद्धति लागू छवि छवि रंग संतुलन में नाटकीय परिवर्तन उत्पन्न कर सकती है क्योंकि रंगीन चैनलों के सापेक्ष वितरण एल्गोरिदम लागू करने के परिणामस्वरूप बदलते हैं। हालांकि, अगर छवि को पहले किसी अन्य कलर स्पेस, लैब कलर स्पेस, या एचएसएल/एचएसवी कलर स्पेस में विशेष रूप से परिवर्तित किया जाता है, तो एल्गोरिदम को ल्यूमिनेंस या वैल्यू चैनल पर लागू किया जा सकता है जिसके परिणामस्वरूप छवि के रंग और संतृप्ति में परिवर्तन होता है ।

तो क्या यह एक व्यवहार्य दृष्टिकोण होगा?

  1. ले लो UIImage डेटा और आरजीबी से एचएसएल को
  2. luminance चैनल पर वह लागू
  3. परिवर्तित डेटा वापस आरजीबी
  4. करने के लिए डेटा

इस धीमी हो जाएगा से नए UIImage बनाएं कनवर्ट करते हैं, मैं सोचता हूं? साथ ही, मुझे 8/16/24 बिट डेटा से अलग तरीके से निपटना होगा, क्योंकि मुझे नहीं पता कि मेरे ऐप के साथ किस प्रकार की छवि का उपयोग किया जाएगा? या मैं आईफोन में छवियों के लिए 24 बिट मान सकता हूँ?

मैं उद्देश्य-सी कोड के किसी भी पॉइंटर्स की सराहना करता हूं जो रंग हिस्टोग्राम बराबर को सही करता है।

मैं नीचे पुस्तकालय पर ध्यान दिया है, लेकिन यह वह किसी भी रंग सुधार नहीं करता है:

http://code.google.com/p/simple-iphone-image-processing/source/browse/#svn/trunk/Classes%3Fstate%3Dclosed

धन्यवाद!

+0

इस प्रश्न के उत्तर के रूप में एक आसान HE कार्यान्वयन है: http://stackoverflow.com/questions/3278560/uiimage-implementing-an-auto-levels-algorithm/3306089#3306089 लेकिन यह रंगस्थान में अन्य काम नहीं करेगा मूल छवियों की तुलना में। – tonklon

+0

धन्यवाद, मैंने देखा। मैं रंग सुधार पहलू पर कुछ और जानकारी चाहता था ... –

उत्तर

1

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

0

मैं YUV Colorspace का उपयोग करने की सलाह देता हूं। सटीकता और गणना गणना सादगी (रैखिक संयोजन) दोनों के लिए।

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

-2

बस आरजीबी घटक में से प्रत्येक को लागू कोड और मॉडल लिखें। हालांकि इसके 3 घटकों के लिए बहुत अधिक गणना है, लेकिन प्रोग्रामिंग की गति ठीक है।ज्यादातर मामलों में, इसके विपरीत में सुधार होता है, लेकिन छवि का "रूप" बदल जाता है। तो आरजीबी को किसी अन्य स्थान में बदलने के लिए सहमत हैं फिर फिर से लागू करें। मैं फार्मूला और HE के लिए सही रंग स्थान की तलाश में हूं। कौन सा रंग स्थान आसान है?

मैं आईपैड प्लेटफ़ॉर्म में HE लिखता हूं, लेकिन मुझे अपने कैनन से ली गई एक बड़ी छवि खोलने के बाद मिलती है, पूरे प्रोग्राम UIPopoverContoller, UIImagePickerController फ़ंक्शंस के बाद क्रैश हो जाता है। मुझे लगता है कि शायद यह मैं फोन के ओएस पर बहुत अधिक दबाव डाल रहा हूं, या ओएस प्रत्येक ऐप के लिए केवल स्मृति की एक सीमित मात्रा आवंटित करता है। यदि ऐप्स प्री-सेट मेमोरी से अधिक का उपयोग कर रहे हैं, तो आईओएस सिर्फ एप्स को मारता है। तो इनपुट छवि के आकार, और अप्रयुक्त स्मृति के कचरा संग्रह, और स्मृति रिसाव का ख्याल रखना चाहिए। रिसाव की जांच के लिए एक्सकोड के उपकरण उपकरण का उपयोग करना जरूरी है।

+2

प्रत्येक आरजीबी घटक को अलग-अलग लागू करने से छवि के रंग को विकृत कर दिया जाएगा। – James

0

परिवर्तन के बाद से, आप निरंतर मूल्यों के रूप में I/V से निपटते हैं, आपको कुछ कताई रणनीति लागू करनी होगी, जिसके परिणामस्वरूप आप जिस मात्रा को बराबर करना चाहते हैं उसके लिए एक चरण हिस्टोग्राम होता है। इसलिए, आप इसे बिन आकार को कम करके इसे तेज कर सकते हैं?

संबंधित मुद्दे