सोबेल ऑपरेटर
सोबेल ऑपरेटर प्रीविट ऑपरेटर के समान है। यह एक व्युत्पन्न मुखौटा भी है और इसका उपयोग किनारे की पहचान के लिए किया जाता है। Prewitt ऑपरेटर की तरह sobel ऑपरेटर का उपयोग एक छवि में दो प्रकार के किनारों का पता लगाने के लिए किया जाता है:
- ऊर्ध्वाधर दिशा
- क्षैतिज दिशा
प्रीविट ऑपरेटर के साथ अंतर
मुख्य अंतर यह है कि सोबेल ऑपरेटर में मास्क के गुणांक तय नहीं होते हैं और उन्हें हमारी आवश्यकता के अनुसार समायोजित किया जा सकता है जब तक कि वे व्युत्पन्न मास्क की किसी भी संपत्ति का उल्लंघन नहीं करते हैं।
निम्नलिखित सोबल ऑपरेटर का ऊर्ध्वाधर मास्क है:
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
यह मास्क ठीक उसी तरह काम करता है जैसे कि प्रिटविट ऑपरेटर वर्टिकल मास्क। केवल एक अंतर है कि यह पहला और तीसरा कॉलम के केंद्र में "2" और "-2" मान है। एक छवि पर लागू होने पर यह मुखौटा ऊर्ध्वाधर किनारों को उजागर करेगा।
यह काम किस प्रकार करता है
जब हम छवि पर इस मुखौटा को लागू करते हैं तो यह प्रमुख ऊर्ध्वाधर किनारों पर होता है। यह बस पहले के आदेश की तरह काम करता है और एक धार क्षेत्र में पिक्सेल तीव्रता के अंतर की गणना करता है।
जैसा कि केंद्र स्तंभ शून्य का है, इसलिए इसमें किसी छवि के मूल मान शामिल नहीं हैं, बल्कि यह उस किनारे के दाएं और बाएं पिक्सेल मूल्यों के अंतर की गणना करता है। इसके अलावा पहले और तीसरे स्तंभ के केंद्र मूल्य क्रमशः 2 और -2 हैं।
यह किनारे क्षेत्र के आसपास पिक्सेल मानों के लिए अधिक वजन देता है। यह बढ़त की तीव्रता को बढ़ाता है और यह मूल छवि के लिए तुलनात्मक रूप से बढ़ाया जाता है।
निम्नलिखित सोबल ऑपरेटर का क्षैतिज मास्क है
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
ऊपर मुखौटा क्षैतिज दिशा में किनारों को मिलेगा और ऐसा इसलिए है क्योंकि शून्य स्तंभ क्षैतिज दिशा में है। जब आप एक छवि पर इस मुखौटा को सजाएंगे तो यह छवि में क्षैतिज किनारों को प्रमुख करेगा। इसके बीच एकमात्र अंतर यह है कि इसमें पहली और तीसरी पंक्ति के केंद्र तत्व के रूप में 2 और 2 हैं।
यह काम किस प्रकार करता है
यह मुखौटा एक छवि में क्षैतिज किनारों को प्रमुखता देगा। यह उपरोक्त मुखौटा के सिद्धांत पर भी काम करता है और एक विशेष किनारे के पिक्सेल तीव्रता के बीच अंतर की गणना करता है। चूंकि मुखौटा की केंद्र पंक्ति शून्य से मिलकर होती है, इसलिए इसमें छवि में किनारे के मूल मूल्यों को शामिल नहीं किया जाता है, बल्कि यह विशेष बढ़त के पिक्सेल तीव्रता के ऊपर और नीचे के अंतर की गणना करता है। इस प्रकार तीव्रता में अचानक परिवर्तन और बढ़त को और अधिक दिखाई देता है।
अब इन मुखौटों को कार्रवाई में देखने का समय है:
नमूना छवि
निम्नलिखित एक नमूना चित्र है जिस पर हम एक समय में दो मुखौटे के ऊपर लागू करेंगे।
वर्टिकल मास्क लगाने के बाद
उपरोक्त नमूना छवि पर ऊर्ध्वाधर मुखौटा लगाने के बाद, निम्नलिखित छवि प्राप्त की जाएगी।
क्षैतिज मास्क लगाने के बाद
उपरोक्त नमूना छवि पर क्षैतिज मुखौटा लगाने के बाद, निम्नलिखित छवि प्राप्त की जाएगी
तुलना
जैसा कि आप देख सकते हैं कि पहली तस्वीर जिस पर हम ऊर्ध्वाधर मुखौटा लागू करते हैं, सभी ऊर्ध्वाधर किनारों को मूल छवि की तुलना में अधिक दिखाई देता है। इसी तरह दूसरी तस्वीर में हमने क्षैतिज मुखौटा लागू किया है और इसके परिणामस्वरूप सभी क्षैतिज किनारों दिखाई दे रहे हैं।
तो इस तरह से आप देख सकते हैं कि हम एक छवि से क्षैतिज और ऊर्ध्वाधर दोनों किनारों का पता लगा सकते हैं। इसके अलावा, यदि आप प्रीविट ऑपरेटर के साथ सोबेल ऑपरेटर के परिणाम की तुलना करते हैं, तो आप पाएंगे कि सॉवेल ऑपरेटर अधिक किनारों को ढूंढता है या प्रीविट ऑपरेटर की तुलना में किनारों को अधिक दिखाई देता है।
यह इसलिए है क्योंकि सोबेल ऑपरेटर में हमने किनारों के आसपास पिक्सेल तीव्रता के लिए अधिक वजन आवंटित किया है।
मास्क के लिए अधिक वजन लागू करना
अब हम यह भी देख सकते हैं कि यदि हम मास्क पर अधिक भार लगाते हैं, तो यह हमारे लिए अधिक किनारों को प्राप्त करेगा। जैसा कि ट्यूटोरियल की शुरुआत में बताया गया है कि सोबेल ऑपरेटर में कोई निश्चित गुणांक नहीं है, इसलिए यहां एक और भारित ऑपरेटर है
-1 | 0 | 1 |
-5 | 0 | 5 |
-1 | 0 | 1 |
यदि आप इस मास्क के परिणाम की तुलना प्रीविट वर्टिकल मास्क से कर सकते हैं, तो यह स्पष्ट है कि यह मास्क प्रीविट एक की तुलना में अधिक किनारा देगा क्योंकि हमने मास्क में अधिक वजन आवंटित किया है।