2013-10-03 7 views
5

मैंने मैटलैब में एक 2 डी गॉसियन फ़ंक्शन के साथ बनाई गई एक छवि को गठबंधन किया है जिसे मैंने मैटलैब में भी परिभाषित किया है और अब मैं परिणामी मैट्रिक्स को डीकोनवॉल करने की कोशिश कर रहा हूं यह देखने के लिए कि क्या मुझे 2 डी गाऊशियन फ़ंक्शन मिलता है fft2 और ifft2 कमांड का उपयोग कर वापस। हालांकि परिणामस्वरूप मुझे प्राप्त होने वाला मैट्रिक्स गलत है (मेरे ज्ञान के लिए)। इनपुट छवि (img) [300x300 सरणी]मैटलैब समस्याओं में एफएफटी का उपयोग करते हुए 2 डी डीकोनवॉल्यूशन

N = 100; 
t = linspace(0,2*pi,50); 
r = (N-10)/2; 
circle = poly2mask(r*cos(t)+N/2+0.5, r*sin(t)+N/2+0.5,N,N); 
img = repmat(circle,3,3); 
साथ 2 डी गाऊसी समारोह के लिए

% संहिता c = 0 sig = 1/64 के लिए

% कोड: यहाँ मैं अब तक क्या किया है के लिए कोड है (जेड) [300x300 सरणी] जेड (सी) के साथ img की 2 डी कनवल्शन के लिए

x = linspace(-3,3,300); 
y = x'; 
[X Y] = meshgrid(x,y); 
Z = exp(-((X.^2)+(Y.^2))/(2*1/64)); 

% कोड [599x599 सरणी]

C = conv2(img,Z); 

% मेरे पास है परीक्षण किया गया है कि यह संकल्प आईएमजी और सी के लिए क्रॉस सेक्शन प्रोफाइल वैक्टर का उपयोग करके सही है और परिणामी एक्स-वाई प्लॉट्स मैं संकल्प से अपेक्षा करता हूं।

% संकल्प के मेरे ज्ञान से, एल्गोरिदम फोरियर स्पेस में गुणक के रूप में काम करता है, इसलिए मेरे इनपुट (आईएमजी) द्वारा मेरे आउटपुट (कल्पित छवि) के फूरियर ट्रांसफॉर्म को विभाजित करके मुझे पॉइंट स्प्रेड फ़ंक्शन (Z - 2 डी गाऊशियन फ़ंक्शन) उलटा फूरियर ट्रांसफॉर्म के बाद इस परिणाम पर विभाजन द्वारा लागू किया जाता है। चेतावनी::

प्रयास किया 2D deconvolution

Fimg = fft2(img,599,599); 

% के लिए

% संहिता शून्य गद्दी 599x599 सरणी

FC = fft2(C); 
R = FC/Fimg; 

% करने के लिए परिणाम को बढ़ाने के लिए मैं अब इस त्रुटि शीघ्र मिल जोड़ा मैट्रिक्स विलक्षण के करीब है या बुरी तरह से स्केल किया गया। परिणाम गलत हो सकते हैं। RCOND = 2.551432e-22

iFR = ifft2(R); 

मैं जेड के करीब आईएफआर उम्मीद कर रहा हूँ, लेकिन मैं कुछ पूरी तरह से अलग हो रही है। यह जटिल मूल्यों के साथ ज़ेड का अनुमान लगा सकता है लेकिन मुझे यह जांचने की प्रतीत नहीं होती है क्योंकि मुझे नहीं पता कि मैटलैब में 3 डी जटिल मैट्रिक्स को कैसे प्लॉट करना है। तो अगर कोई मुझे बता सकता है कि मेरा जवाब सही है या गलत है और इस deconvolution कैसे काम करने के लिए मिलता है? मुझे बहुत सराहना की जाएगी।

+2

थोड़ा बंद विषय nitpick: यदि आप एक संकेत convolve, – chappjc

+0

एक 599x599 मैट्रिक्स में विभाजन के परिणाम के बाद से कुंडलित नहीं, तुम कैसे 2D गाऊसी समारोह जो 300x300 है मिलता है? – Curious

+0

@IssamLaradji परिणामस्वरूप छवि 59 9x599 है जिसमें 2 डी गाऊसी पहली 300x300 पंक्तियों के भीतर निहित है। मैंने 300x300 सरणी –

उत्तर

2

R = FC/FimgR = FC./Fimg; होना आवश्यक है आपको विभाजन तत्व के अनुसार विभाजन करने की आवश्यकता है।

+0

वापस पाने के लिए मैट्रिक्स इंडेक्सिंग का उपयोग किया है बेशक, यह बहुत अधिक समझ में आता है; क्या एक गड़बड़ गलती है। क्या सतह के साजिश के रूप में परिणामस्वरूप जटिल मैट्रिक्स को साजिश करने का कोई तरीका है, इसलिए मैं इसकी तुलना अपने गाऊशियन से कर सकता हूं? –

+0

@ सेनजेम्स जैमिसन मुझे लगता है कि यह कोई जटिल घटक नहीं होना चाहिए ... हालांकि सुनिश्चित नहीं है।लेकिन बस इसे साकार करने से पहले आप एरे को 'abs' के साथ लपेट सकते हैं। – Justin

+0

हाँ मैंने यह किया और मैंने पहले 300 पंक्तियों और स्तंभों के लिए मैट्रिक्स को अनुक्रमित किया और मैंने 4 x 10^-13 की अधिकतम बिंदुवार परिभाषित अनिश्चितता के साथ अपने फ़ंक्शन को वापस पुनर्प्राप्त किया। मदद लोगों के लिए धन्यवाद –

0

यहां इस deconvolved Gaussian के कुछ Octave (संस्करण 3.6.2) भूखंड हैं।

% deconvolve in frequency domain 
Fimg = fft2(img,599,599); 
FC = fft2(C); 
R = FC ./ Fimg; 
r = ifft2(R); 

% show deconvolved Gaussian 
figure(1); 
subplot(2,3,1), imshow(img), title('image'); 
subplot(2,3,2), imshow(Z), title('Gaussian'); 
subplot(2,3,3), imshow(C), title('image blurred by Gaussian'); 
subplot(2,3,4), mesh(X,Y,Z), title('initial Gaussian'); 
subplot(2,3,5), imagesc(real(r(1:300,1:300))), colormap gray, title('deconvolved Gaussian'); 
subplot(2,3,6), mesh(X,Y,real(r(1:300,1:300))), title('deconvolved Gaussian'); 

% show difference between Gaussian and deconvolved Gaussian 
figure(2); 
gdiff = Z - real(r(1:300,1:300)); 
imagesc(gdiff), colorbar, colormap gray, title('difference between initial Gaussian and deconvolved Guassian'); 

enter image description here enter image description here

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