पहले मूल बातें:
मीन शिफ्ट विभाजन एक स्थानीय एकरूपता तकनीक है कि स्थानीय वस्तुओं में छायांकन या रागिनी मतभेद उदासीनता के लिए बहुत उपयोगी है। एक उदाहरण कई शब्दों से बेहतर है:

कार्रवाई: एक सीमा-r पड़ोस में पिक्सल के मतलब के साथ प्रत्येक पिक्सेल बदल देता है और जिसका मूल्य एक दूरी घ के भीतर है।
- पिक्सल के बीच की दूरी को मापने के लिए एक दूरी समारोह:
मीन शिफ्ट आमतौर पर 3 आदानों लेता है। आमतौर पर यूक्लिडियन दूरी, लेकिन किसी भी अन्य अच्छी तरह से परिभाषित दूरी समारोह का उपयोग किया जा सकता है। Manhattan Distance कभी-कभी एक और उपयोगी विकल्प है।
- एक त्रिज्या। इस त्रिज्या के भीतर सभी पिक्सेल (उपरोक्त दूरी के अनुसार मापा गया) गणना के लिए जिम्मेदार होगा।
- एक मूल्य अंतर। r त्रिज्या के अंदर सभी पिक्सल से, हम ले केवल उन जिसका मूल्यों मतलब
कृपया ध्यान दें कि एल्गोरिथ्म अच्छी तरह से सीमाओं पर परिभाषित नहीं है की गणना के लिए इस अंतर के भीतर हैं, इसलिए विभिन्न कार्यान्वयन आप अलग परिणाम वहाँ दे देंगे होगा ।
मैं यहां गॉरी गणितीय विवरणों पर चर्चा नहीं करूंगा, क्योंकि वे उचित गणितीय नोटेशन के बिना दिखाना असंभव हैं, स्टैक ओवरव्लो में उपलब्ध नहीं है, और यह भी कि वे from good sources elsewhere पाए जा सकते हैं। अपने मैट्रिक्स के केंद्र में
आइए नज़र:
153 153 153 153
147 96 98 153
153 97 96 147
153 153 147 156
त्रिज्या और दूरी के लिए उचित विकल्प के साथ
, चार केंद्र पिक्सल 97 (उनके माध्य) का मूल्य मिलेगा और अलग रूप आसन्न पिक्सल हो जाएगा ।
चलो Mathematica में इसकी गणना करें।वास्तविक संख्या दिखाने के बजाय, हम एक रंग कोडिंग प्रदर्शित करेगा, इसलिए यह समझना क्या हो रहा है आसान है:
अपने मैट्रिक्स के लिए रंग कोडिंग है:

फिर हम एक उचित मीन ले शिफ्ट:
MeanShiftFilter[a, 3, 3]
और हम पाते हैं:

जहां सभी केंद्र तत्व बराबर हैं (9 7, बीटीडब्ल्यू)।
आप एक और सजातीय रंग प्राप्त करने की कोशिश कर, मीन शिफ्ट के साथ कई बार फिर से शुरू कर सकते हैं। कुछ पुनरावृत्तियों के बाद, आप एक स्थिर गैर समदैशिक विन्यास पर पहुंचने:

इस समय, यह स्पष्ट आप क्या आपका मतलब शिफ्ट लागू करने के बाद कितने "रंग" पाने के चयन नहीं कर सकते कि होना चाहिए। तो, चलो दिखाएं कि यह कैसे करें, क्योंकि यह आपके प्रश्न का दूसरा हिस्सा है।
आपको आउटपुट क्लस्टर की संख्या को अग्रिम में सेट करने में सक्षम होने की आवश्यकता है Kmeans clustering जैसा कुछ है।
यह अपने मैट्रिक्स के लिए इस तरह से चलाता है:
b = ClusteringComponents[a, 3]
{{1, 1, 1, 1, 1, 1, 1, 1},
{1, 2, 2, 3, 2, 3, 3, 1},
{1, 3, 3, 3, 3, 3, 3, 1},
{1, 3, 2, 1, 1, 3, 3, 1},
{1, 3, 3, 1, 1, 2, 3, 1},
{1, 3, 3, 2, 3, 3, 3, 1},
{1, 3, 3, 2, 2, 3, 3, 1},
{1, 1, 1, 1, 1, 1, 1, 1}}
या:

कौन सा बहुत हमारे पिछले परिणाम के समान है, लेकिन जैसा कि आप देख सकते हैं, अब हम केवल तीन है आउटपुट स्तर।
एचटीएच!
तीन स्तर? मैं 100 के आसपास है और 150 – John
खैर इसकी के रूप में एक segmenation मैंने सोचा था कि बीच में नंबरों के लिए अब तक बढ़त संख्या से दूर सीमा के उस अनुभाग में शामिल किया जाना होगा आसपास नंबर देखें। कारण है कि मैं ने कहा कि 3. मुझे लगता है मैं वास्तव में समझने न के रूप में कैसे segmenation के इस प्रकार काम करता है गलत हो सकता है। – Sharpie
ओह ... शायद हम अलग-अलग चीजों का मतलब ले रहे हैं। सब अच्छा। :) – John