2013-04-04 9 views
5

प्रश्न

मेरे पास एक छवि अनुक्रम है जो गहराई से जानकारी का प्रतिनिधित्व करता है जिसे मैं साफ़ करना चाहता हूं। कुछ आउटलाइर्स (0-255 रेंज के लिए 25 से नीचे तीव्रता वाले मान) हैं जिन्हें मैं स्वीकार्य विकल्प से भरना चाहता हूं (उस विशिष्ट क्षेत्र में स्थानीयक औसत मान एक अच्छा अनुमान हो सकता है)।ग्रे-स्केल छवि

क्या कोई ऐसा करने का एक आसान तरीका देख सकता है? मैंने नाइन के साथ अवांछित मानों को प्रतिस्थापित करने वाले औसत फ़िल्टर (10 का फ़िल्टर आकार) का उपयोग करने का प्रयास किया है, लेकिन इसने स्थिति को और खराब कर दिया है, जो उन्हें सामान्य औसत मूल्य के साथ प्रतिस्थापित करके बेहतर करता है।

Basic trial

पी.एस. किसी ने पहले ही मुझे सुझाव दिया है एक तेज तरंगिका पुनर्निर्माण उपयोग करने के लिए है, लेकिन मैं वास्तव में नहीं जानता कि जहां शुरू करने के लिए ...

लागू समाधान (अभी तक)

समाधान मैं (inpaint_nans के बारे में पढ़ने से पहले लागू किया सुझाव tmpearce द्वारा) है:

  1. मूल छवि को डुप्लिकेट करें;
  2. सामान्य औसत मान के साथ अमान्य पिक्सल भरना;
  3. इसे धुंधला करने के लिए रे 10 की गोलाकार डिस्क का उपयोग करें;
  4. क्या मैं बिंदु से 3.
  5. रन आकार का एक मंझला फिल्टर 10.
img2 = img;          
img2(img < .005) = mean(img(:));     
H = fspecial('disk',10);       
img3 = imfilter(img2,H,'symmetric');    
img4 = img;          
img4(img < .3) = img3(img < .3);     
filterSize = 10;         
padopt = {'zeros','indexed','symmetric'};   
IMG = medfilt2(img4, [1 1]*filterSize, padopt{p}); 

Second trial

उत्तर

7

मैं से inpaint_nans योगदान की सिफारिश मिल गया के साथ मूल छवि में अमान्य मान की जगह MATLAB File Exchange - शुरू करें जैसा आपने पहले से ही NaN के साथ आउटलाइनर्स को बदलकर किया है और वहां से जाने के लिए लिंक का उपयोग करें।

समारोह के विवरण से: गैर NaN तत्वों का उपयोग कर 2-डी सरणी में

अंतर्वेशन NaN तत्वों। भी extrapolate कर सकते हैं, क्योंकि यह डेटा के त्रिकोण का उपयोग नहीं करता है। Inpaint_nans इंटरपोलेशन, पर कई अलग-अलग दृष्टिकोण प्रदान करता है जो सटीकता बनाम गति और स्मृति की आवश्यकता में ट्रेडऑफ देते हैं। सभी वर्तमान में inpaint_nans में पाए गए विधियां स्पैस रैखिक बीजगणित और पीडीई विघटनकारी पर आधारित हैं। संक्षेप में, एक पीडीई होने वाली जानकारी के साथ संगत होने के लिए हल किया गया है।

पुन: प्रयोज्य कोड के लिए हुरेय!

+5

मेरे विचार बिल्कुल, केवल 20 सेकंड के बहुत देर हो चुकी। +1 – bla

4

roifill नामक फ़ंक्शन का उपयोग करें। आपको इसके साथ गड़बड़ करने की ज़रूरत है। मुझे imdilate का उपयोग करना पड़ा क्योंकि यह सीमा से अलग हो गया था।

कोड:

testimage = imread('BAPz5.png'); 
testimage = double(rgb2gray(testimage)); 
testimage_filt = roifill(testimage,imdilate(testimage<100,true(4))); 
figure(1); 
subplot(1,2,1); 
imshow(testimage,[]); 
subplot(1,2,2); 
imshow(testimage_filt,[]); 

आउटपुट:

enter image description here

1

पद उत्तर दिया जाता है लेकिन सिर्फ रिकार्ड के लिए, में [1], लेखक प्राकृतिक आकार की एक बुनियादी सिद्धांत पर आधारित, यानी, ऑब्जेक्ट्स दूसरी ऑर्डर चिकनीता का पालन करते हैं, वह एक इन-पेंटिंग विधि का सुझाव देते हैं जो कम-वर्ग भावना में वक्रता को कम करता है। वह code भी प्रदान करता है। सौभाग्य।

[1] Α Categoty लेवल 3-डी वस्तु डेटाबेस: kineckto कार्य लाना (ICCV)

enter image description here

+0

ध्यान दें कि [लिंक-केवल उत्तर निराश हैं] (http://meta.stackoverflow.com/tags/link-only-answers/info), SO उत्तर समाधान के लिए खोज का अंत बिंदु होना चाहिए (बनाम अभी तक संदर्भों का एक और स्टॉपओवर, जो समय के साथ पुराना हो जाता है)। लिंक को संदर्भ के रूप में रखते हुए, यहां स्टैंड-अलोन सारांश जोड़ना पर विचार करें। – kleopatra

+0

यह कमाल है! धन्यवाद ** डार्कमूर ** आपके नोट के लिए! कागज से समर्थित किसी और राय को प्राप्त करना हमेशा अच्छा होता है! – Atcold

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