2013-05-21 6 views
5

का ब्याज क्षेत्र प्राप्त करें मेरे पास मूल्यों से भरा एक int सरणी है (0-255) और मुझे दो अनुक्रमणिका निकालने की आवश्यकता है।हिस्टोग्राम (इंट ऐरे)

पाए जाने वाले इंडेक्स उन दिलचस्प क्षेत्र का प्रतिनिधित्व करेंगे जिन्हें मैं ध्यान केंद्रित करना चाहता हूं।

इस क्षेत्र के मान हमेशा दूसरों की तुलना में अधिक हैं लेकिन कभी-कभी अंतर बहुत कम होता है।

इस उदाहरण की तरह

:

enter image description here

मेरे ब्याज क्षेत्र यह है:

enter image description here

मेरे वर्तमान दृष्टिकोण अधिकतम मूल्य और औसत मूल्य प्राप्त करने के लिए है। फिर मुझे मिल जाएगा:

  • "मैक्स - (अधिकतम - औसत)" से अधिक पहली अनुक्रमणिका।
  • "मैक्स - (अधिकतम - औसत)" से अधिक अंतिम सूचकांक।

लेकिन कभी-कभी, इस मामले में मेरी विधि को जंक भाग मिलता है। (दाईं ओर पांचवां "कॉलम")

कोई भी बेहतर दृष्टिकोण सुझा सकता है?

नोट: ब्याज क्षेत्र

उत्तर

0

आप इस तरह के मालगाड़ी या अपने हिस्टोग्राम को चौरसाई के किसी भी अन्य साधन के रूप में एक सरल आवेग प्रतिक्रिया फिल्टर लागू हो सकते हैं उच्च आवृत्ति घटकों को कम करने के उदाहरण छवि की तरह हमेशा 4 "कॉलम" है । इसके बाद आप स्थानीय मिनीमा और मैक्सिमा की गणना कर सकते हैं और बैंडविड्थ के भीतर व्यक्तिगत चोटियों (अधिकतम-न्यूनतम-अधिकतम-मिनट प्रति चोटी) को पिन-पॉइंट कर सकते हैं जो आरओआई को कम करने में मदद करेगा।

यहां एक साधारण Boxcar मेरा फ़िल्टर कार्यान्वयन है।

0

शायद मैं बहुत अधिक मान रहा हूं। लेकिन आपका डेटा ऐसा लगता है कि 4 'पहाड़ों' के चारों ओर मजबूत 'किनारों' हैं। इसलिए आपको उन edge/ridge detection विचार के लिए एल्गोरिदम समूह देखना चाहिए।

मेरा सबसे सरल जवाब पहले थ्रेसहोल्डिंग का प्रयास करना होगा। देखें कि क्या यह काम करता है।

यदि नहीं, तो शायद Sobel filter जैसे फ़िल्टर के एक-आयामी संस्करण को लागू कर रहा है। उन्हें आपके डेटा में महत्वपूर्ण बिंदुओं को हाइलाइट करना चाहिए जहां दूसरा ऑर्डर व्युत्पन्न बड़ा है।

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