MATLAB

2010-05-05 9 views
11

में गॉसियन स्मूथिंग m x n कुछ शोर छवियों वाले तत्वों की सरणी के लिए, मैं Gaussian smoothing निष्पादित करना चाहता हूं। मैं इसे MATLAB में कैसे करूं?MATLAB

मैंने गणित को पढ़ा है जिसमें एक निश्चित पैमाने पर कर्नेल के साथ सब कुछ चिकनाई करना शामिल है, लेकिन मुझे नहीं पता कि MATLAB में इसे कैसे किया जाए।

+0

यदि आपको लगता है कि यह आपकी समस्या का हल करता है (जो निश्चित रूप से मामला प्रतीत होता है) आपको शीर्ष जवाब स्वीकार करना चाहिए। ऐसा करने के लिए बस उत्तर के बगल में स्थित चेक मार्क पर क्लिक करें। समुदाय में आपका स्वागत है :) –

उत्तर

27

उम्मीद है कि आपके पास छवि प्रसंस्करण टूलबॉक्स है। ऐसा है तो आपने fspecial function इसलिए की तरह साथ एक गाऊसी फिल्टर बना सकते हैं:

myfilter = fspecial('gaussian',[3 3], 0.5); 

मैं hsize ([3 3]) और सिग्मा (0.5) यहाँ के लिए डिफ़ॉल्ट मान का इस्तेमाल किया है, लेकिन आप खेलने के लिए चाहते हो सकता है उनके साथ चारों ओर। hsize सिर्फ फिल्टर का आकार है, इस मामले में यह एक 3 एक्स 3 मैट्रिक्स है। सिग्मा गाऊशियन फ़ंक्शन का सिग्मा है (fspecial फ़ंक्शन पेज के नीचे देखें)।

अब आप अपनी छवि को फिल्टर करने के imfilter उपयोग कर सकते हैं:

myfilteredimage = imfilter(unfilteredimage, myfilter, 'replicate'); 
यहाँ

मैं बस unfilteredimage, फिल्टर, और एक पैरामीटर का कहना है कि कैसे फिल्टर सीमाओं संभाल चाहिए में पारित किया है। इस मामले में, मैंने प्रतिलिपि चुना है जो सरणी की सीमाओं के बाहर इनपुट सरणी मान को निकटतम सरणी सीमा मान पर सेट करता है, लेकिन आप कुछ अन्य मानों को आजमा सकते हैं (या उस विकल्प को छोड़कर छवि मानों के बाहर सभी को 0 पर सेट कर सकते हैं)।