matlab - Apply a gaussian distribution in a specific part of an image -


मेरे पास निम्न चित्र और एक संबंधित मुखौटा है।

मैं गाऊसी, g = @ (x, y, xc, yc) exp (- ((x-xc) के साथ सफेद सर्कल के अंदर पिक्सल को वज़न करना चाहूंगा ^ 2) /0.5 + ((y-yc) ^ 2) /0.5)); , (xc, yc) में रखा मुखौटा। x , y संबंधित पिक्सेल के निर्देशांक हैं क्या आप कृपया किसी को ऐसा करने का सुझाव दे सकते हैं कि के लिए बिना ?

धन्यवाद।

अंडाकार के अंदर "भारित" पिक्सल से, मैं मानता हूँ कि आप 2 डी गाऊसी द्वारा तत्वों को गुणा करते हैं यदि हां, तो यहां कोड है:

 % छवियाँ पढ़ें img = imread ('img.jpg'); Img = im2double (rgb2gray (img)); मास्क = इमेड ('मुखौटा। जेपीजी'); मास्क = im2double (rgb2gray (मुखौटा)) & gt; 0.9; % JPG संपीड़न के परिणामस्वरूप कुछ शोर% गाऊसी फ़ंक्शन जी = @ (एक्स, वाई, एक्ससी, यासी) एक्सपी (- (((x-xc)। ^ 2) / 500 + ((y-yc)। ^ 2)। / 200)); % को मापदंडों के रूप में रूपांतरित करने के लिए संशोधित किया जाना चाहिए% centroid और मुखौटा rp_mask = regionprops (मास्क, 'Centroid', 'BoundingBox', 'Image') प्राप्त करने के लिए आरपी का उपयोग करें; % फॉर्म निर्देशक centroid = round (rp_mask.Centroid); [समन्वय x coord_y] = मेषग्रिड (सीटीआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (1)): सीट (आरपी_मास्क। बाउंडिंग बॉक्स (1)) + आरपी_मास्क। बाउंडिंग बॉक्स (3) -1, ... सीट (आरपी_मास्क। बाउंडिंग बॉक्स (2)): छत (rp_mask.BoundingBox (2)) + rp_mask.BoundingBox (4) -1); % गाऊसी मास्क gaussian_mask = g प्राप्त करें (coord_x, coord_y, centroid (1), centroid (2)); Gaussian_mask (~ rp_mask.image) = 1; % आरओआई के बाहर 1 के मान सेट करें, यह ROI% के बावजूद भार घटाता है गाऊसी को लागू करें - यह छोटा करने के लिए temp चर का उपयोग कर सकते हैं img_g = img; आईएमजी_जी (सीटीआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (2)): सीआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (2)) + आरपी_मास्क। बाउंडिंग बॉक्स (4) -1, ... सीआईआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (1)): छत (आरपी_मास्क। बाउंडिंग बॉक्स 1)) + आरपी_मास्क। बाउंडिंगबॉक्स (3) -1) = ... आईएमजी (सीटीआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (2)): सीआईएल (आरपी_मास्क। बाउंडिंग बॉक्स (2)) + आरपी_मास्क। बाउंडिंग बॉक्स (4) -1, .. सीट (आरपी_मास्क। बाउंडिंग बॉक्स (1)): सीआईएल (आरपी_मास्क। बाउंडिंगबॉक्स (1)) + आरपी_मास्क। बाउंडिंग बॉक्स (3) -1)। * गाऊसी; % आंकड़ा दिखाएँ, imshow (img_g, []);  

परिणाम:

यहाँ छवि विवरण दर्ज करें

यदि आप उस roi के भीतर कुछ फ़िल्टरिंग करना चाहते हैं, तो roifilt2 नामक फ़ंक्शन है जो आपको उस क्षेत्र के भीतर भी छवि को फ़िल्टर करने की अनुमति देगा:

<पूर्व> img_filt = roifilt2 (fspecial ('गाऊसी', [21 21], 10), आईएमजी, मास्क); आंकड़ा, इम्शोव (आईएमजी_फिल्ल्ट, []);

परिणाम:

यहां छवि विवरण दर्ज करें


Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

c# - MySQL Parameterized Select Query joining tables issue -