यदि किसी कारण से आप रूपात्मक संचालन का उपयोग करने के लिए सीमित हैं, तो आप उन्मुख करीबी संचालन की "वोटिंग योजना" का उपयोग करने पर विचार कर सकते हैं।
रूपात्मक संचालन के साथ एक समस्या यह है कि वे वास्तव में दिशात्मकता को ध्यान में नहीं रखते हैं। केंद्र पिक्सेल के लिए, इस तरह का एक पड़ोस
1 0 0
1 1 0
0 1 1
वास्तव में इस तरह से एक पड़ोस से अलग नहीं है
0 1 0
1 1 0
1 1 0
जब आपके द्वारा उन्हें पसंद किया जा सकता है, तो फैलाव और कटाव प्रत्यक्ष रूप से पक्षपाती नहीं होने के कारण समस्याएँ पैदा हो सकती हैं। तो एक चीज जो आप कर सकते हैं, वह है कि गुठली का उपयोग करते हुए सबसे उपयुक्त प्रत्यक्ष रूप से पक्षपातपूर्ण रूपात्मक ऑपरेशन का पता लगाएं:
1 1 0 1 0 0 1 0 0
0 1 0 1 1 0 1 1 0
0 1 1 0 1 1 0 1 1 . . .
यह 5 x 5 कर्नेल के साथ बेहतर होगा, लेकिन मुझे लगता है कि यह विचार पर्याप्त स्पष्ट है। मूल रूप से, एक कोने का पता लगाने कर्नेल का विचार थोड़ा खिंचाव है ताकि यह एक लाइन सेगमेंट का पता लगाने वाला कर्नेल हो। आप इसका उपयोग सर्वोत्तम-फिट घटता खोजने के लिए भी कर सकते हैं:
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
स्पष्ट रूप से यह बड़ी संख्या में गुठली की ओर जाता है, लेकिन अगर मूल विचार काम करता है तो आप के लिए वादा दिखाता है कि तकनीक को अनुकूलित करने का एक तरीका है ताकि सबसे अच्छा-फिट कर्नेल एक पास में मिल जाए।
किसी भी मामले में, यदि आप कई कर्नेल और कुछ तर्क का उपयोग करते हैं, तो प्रत्येक ऑपरेशन (x, y) को पारंपरिक रूपात्मक आकृति की तुलना में अधिक गणना की आवश्यकता होती है:
- प्रत्येक पिक्सेल (एक्स, वाई) पर, कई रूपात्मक ऑपरेटरों में से प्रत्येक को लागू करें। प्रत्येक ऑपरेटर के लिए, रूपात्मक ऑपरेशन के परिणाम और इनपुट के कर्नेल से मेल खाने वाले डिग्री दोनों की गणना करें। ("डिग्री" = पिक्सेल की संख्या जो मेल खाती है)
- कर्नेल के लिए रूपात्मक परिणाम चुनें जो कि पिक्सेल कॉन्फ़िगरेशन पर वास्तविक रूप से सबसे निकटता से मेल खाता है।
कर्नेल का आकार इनपुट के आकार से मेल खाना चाहिए। बड़े कर्नेल का उपयोग करने के बजाय, आप ऑपरेशन की संख्या को कम करने के लिए "स्प्रेड" कर्नेल का उपयोग कर सकते हैं। निम्नलिखित कर्नेल सिर्फ 3 x 3 कर्नेल है, जिसका दायरा 1 से बड़ा है।
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 0 1