2016-03-09 15 views
5

मैं छवि मैं की ढाल गणना करने के लिए चाहते हैं मैं दो विकल्प है किढाल और अपमानजनक के बीच क्या अंतर है?

[Gx, Gy] = gradient(I); 
g = sqrt(Gx.^2+Gy.^2); 

और

हैं
[g,~] = imgradient(I, 'sobel'); 

मेरा प्रश्न

  1. क्या ढाल विधि में उपयोग कर रहा है पहले हैं विकल्प?

  2. सोबेल विधि का उपयोग कर ढाल खोजने का क्या मतलब है?

धन्यवाद सभी

यह मैं

I=zeros([128 128]); 
I(50:100,50:100)=100; 
[Gx, Gy] = gradient(I); 
g1 = sqrt(Gx.^2+Gy.^2); 
[g2,~] = imgradient(I, 'sobel'); 
subplot(121);imshow(g1,[]);title('First option') 
subplot(122);imshow(g2,[]);title('Second option') 

enter image description here

क्या करने की कोशिश की शोर छवि के लिए जोड़ा जाता है, अलग अलग और अधिक स्पष्ट हो जाएगा

I=zeros([128 128]); 
I(50:100,50:100)=100; 
%% Add noise image; 
noiseStd=5; 
I_noise = I + (noiseStd * randn([128, 128])); 
[Gx, Gy] = gradient(I_noise); 
g1 = sqrt(Gx.^2+Gy.^2); 
[g2,~] = imgradient(I_noise, 'sobel'); 
subplot(121);imshow(g1,[]);title('First option') 
subplot(122);imshow(g2,[]);title('Second option') 

enter image description here

दृश्य के रूप में, दूसरा विकल्प अधिक चमक मूल्य

+1

क्या आपने तुलना करने की कोशिश की है? अमीन अंतर यह है कि छवियों के लिए टूलबॉक्स में आता है, किसी भी सतह के लिए अन्य काम –

+0

हां। मैंने इसे अपडेट किया। कृपया मेरा अद्यतन प्रश्न – Jame

+0

हाय देखें! एक उत्तर को –

उत्तर

8

अंतर 'सोबेल' वास्तव में ऑपरेटर है प्रदान की है। सोबेल ऑपरेटर एक मैट्रिक्स है जो छवि के साथ अपने दिशात्मक ग्रेडियेंट की गणना करने के लिए घुल जाता है।

सोबेल ऑपरेटर (विकिपीडिया से) के रूप में परिभाषित किया गया है:

enter image description here

जबकि क्या gradient करता है बस दिशात्मक मतभेद है। आप

Gx=[ 0 0 0;    Gx=[ 0 -1 0; 
    -1 0 1;   and   0 0 0; 
    0 0 0]      0 1 0]; 

यह अंतर कर ढाल के रूप में इस व्याख्या कर सकते हैं, क्योंकि जब एक एक छवि है, यह पता है कि यह एक सतत डोमेन का discretization है। सोबेल ऑपरेटर उन चीजों को ध्यान में रखने में मदद करता है जो दिए गए पिक्सेल के आसपास "आसपास" होते हैं।

+0

के रूप में स्वीकार करने पर विचार करें, इसलिए, यदि मैं केवल उपरोक्त कोड के रूप में अपनी दिशा के बिना ढाल को मानता हूं। इन दोनों के बीच क्या भिन्न है] दो ग्रेडियेंट? – Jame

+0

@ user8430 'imgradient' सिर्फ आउटपुट के रूप में' sqrt (Gx^2 + Gy^2) 'देता है, जबकि' ढाल 'आपको अलग-अलग देता है। बस कि। –

+0

मेरे परिणाम से, यह दिखाने के लिए साफ़ करता है कि सोबेल विधि की तुलना में केंद्रीय अंतर विधि के परिणामस्वरूप अधिक शोर होता है। इस प्रकार, केंद्रीय अंतर विधि की तुलना में, सोबेल विधि डिजाइन किए गए गुणांक वाले एक अलग कर्नेल का उपयोग करके बेहतर शोर अस्वीकृति प्राप्त करती है। क्या आप मेरी बात से सहमत हैं? – Jame

8

gradient विशेष रूप से केंद्रीय अंतर और imgradient का उपयोग करता है, आपको एक विकल्प देता है, उदा। 'central' साथ ही डिफ़ॉल्ट 'sobel'।पहला विकल्प imgradient का उपयोग करते हुए लग रहा है एक ही gradient के रूप में:

I=zeros([128 128]); 
I(50:100,50:100)=100; 
%% Add noise image; 
noiseStd=5; 
I_noise = I + (noiseStd * randn([128, 128])); 
[Gx, Gy] = gradient(I_noise); 
g1 = sqrt(Gx.^2+Gy.^2); 
[g2,~] = imgradient(I_noise, 'sobel'); 
[g3,~] = imgradient(I_noise, 'central'); 
subplot(131);imshow(g1,[]);title('gradient') 
subplot(132);imshow(g2,[]);title('imgradient sobel') 
subplot(133);imshow(g3,[]);title('imgradient central') 

enter image description here


imgradient के लिए वहाँ पाँच उपलब्ध विकल्प हैं:

  • 'सोबेल' सोबेल ढाल ऑपरेटर (डिफ़ॉल्ट)
  • 'प्रीविट' प्रीविट ग्रेडियेंट ऑपरेटर
  • 'केंद्रीय' केंद्रीय अंतर ढाल: डीआई/डीएक्स = (I (x + 1) - I (x-1))/2
  • 'मध्यवर्ती' मध्यवर्ती अंतर ढाल: डीआई/डीएक्स = I (x + 1) - मैं (एक्स)
  • 'रॉबर्ट्स के रॉबर्ट्स ढाल ऑपरेटर

जबकि प्रलेखन explaines:

एल्गोरिथम दृष्टिकोण सूचीबद्ध ढाल तरीकों में से प्रत्येक के लिए imgradient में लिया पहली गणना दिशात्मक है ग्रेडियेंट,एक्स-अक्ष और वाई-अक्ष के संबंध में 0 और Gy, । एक्स-अक्ष को कॉलम के साथ सही तरीके से परिभाषित किया गया है और वाई-अक्ष को पंक्तियों के साथ पर परिभाषित किया गया है। ग्रेडियेंट परिमाण और दिशा को से उनके ऑर्थोगोनल घटकों Gx और Gy से गणना की जाती है।

+0

केंद्रीय अंतर के आपके उदाहरण के लिए धन्यवाद। तो, सोबेल ऑपरेटर का befinet क्या है। जैसा कि पिगलेट ने कहा कि यह अधिक चिकनी छवि प्रदान करता है। – Jame

+0

@ user8430 उत्तर स्टैक ओवरफ्लो के दायरे के पीछे होगा, और मैं वास्तव में इसे नहीं जानता। आपको एकल एल्गोरिदम पर कुछ शोध करने की आवश्यकता होगी। – thewaywewalk

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