2011-07-27 12 views
5

मैं सिर्फ यह पूछना चाहता हूं कि संसाधन हैं जो आप अनुशंसा करते हैं कि Image smoothing का वर्णन करें।छवि प्रसंस्करण - Smoothing

धन्यवाद।

+4

"छवि चिकनाई" का अर्थ बहुत सी चीजें हो सकता है।(आमतौर पर किसी प्रकार का एक कम-पास फ़िल्टर, लेकिन कभी-कभी लोग इसे पूरी तरह से अलग-अलग परिचालनों का वर्णन करने के लिए उपयोग करते हैं।) आप क्या करना चाहते हैं? –

+5

मैं http://en.wikipedia.org/wiki/Gaussian_blur से शुरू करूंगा –

उत्तर

10

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

फ़ोकस से बाहर कैमरे के लेंस का उपयोग करते समय इसका अर्थ यह है कि वस्तुओं से प्रतिबिंबित प्रकाश की किरणें हमारी दृष्टि में मिलती हैं। यह एक छवि का प्रतिनिधित्व ध्यान केंद्रित दृष्टि है:

enter image description here

यहाँ एक समान आरेख धुंधला का प्रतिनिधित्व है या गैर ध्यान केंद्रित दृष्टि: enter image description here

इस प्रभाव के लिए पुन: पेश करने को डिजिटल रूप से, चलो किसी छवि के प्रत्येक पिक्सेल को लें और इसे अपने औसत और उसके पड़ोसी आठ पिक्सेल से प्रतिस्थापित करें: enter image description here

ऊपर 7x7 काले वर्ग के अंदर एक सफेद पिक्सेल की एक छवि है। ध्यान दें कि यह एक सफ़ेद पिक्सेल है, न कि पिक्सेल के पूरे वर्ग में, बस बहुत ऊपर उड़ाया गया है। एक मानक 8 बिट छवि प्रतिनिधित्व में, यह निम्नलिखित

 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 255 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 

के रूप में जब हम औसत प्रदर्शन का प्रतिनिधित्व करती है, कि (कि मूल पिक्सेल सहित इसके चारों ओर एक 3x3 वर्ग में सभी पिक्सल के औसत के साथ प्रत्येक पिक्सेल की जगह भी, हम पाते हैं

 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 
0 0 28 28 28 0 0 
0 0 28 28 28 0 0 
0 0 28 28 28 0 0 
0 0 0 0 0 0 0 
0 0 0 0 0 0 0 

से ऊपर नंबर, पूर्णांक हैं क्योंकि अब तक हम केवल पूर्णांक संचालन किया है, तो चलो अनुरूप होना करते हैं।

यह अब के लिए एक चौरसाई के बहुत की तरह लग सकते हैं, लेकिन चलते एक और उदाहरण देखें। नीचे एक चेक है 0 और 255 पिक्सेल मानों को बदलने के साथ रबर छवि।

enter image description here

चलो अब एक 4x4 वर्ग के एक औसत जहां मूल पिक्सेल इस तरह के रूप में तैनात किया गया है द्वारा प्रत्येक पिक्सेल की जगह:

 
. . . . 
. X . . 
. . . . 
. . . . 

कि बिसात पैटर्न की वजह से आपका देखें, के औसत मूल्य प्रत्येक ऐसा वर्ग 255/2 = 127 (पूर्णांक विभाजन फिर से) होगा। चेकरबोर्ड पिक्सेल बदलाव पिक्सेल से पिक्सेल तक बहुत कठोर हैं। किसी भी पिक्सेल से अपने पड़ोसी से जाकर, हम सबसे ज्यादा संभव पिक्सेल मान से सबसे कम संभव हो जाते हैं। इसे उच्च आवृत्ति सामग्री के रूप में जाना जाता है। औसत होने पर, हम इस उच्च आवृत्ति घटक को हटाते हैं, और इसलिए, सिग्नल प्रोसेसिंग लिंगो में, हम उच्च स्टॉप फ़िल्टरिंग या समानार्थी रूप से कम पास फ़िल्टरिंग कर रहे हैं। किनारों पर अजीब कलाकृतियों के बारे में चिंता मत करो। वे वहां हैं क्योंकि छवि के किनारे पर फ़िल्टर करते समय, हम औसत से पिक्सल गायब हैं, इसलिए हम मानते हैं कि छवि से परे सब कुछ सिर्फ काला है।

चलो एक नियमित ग्रेस्केल छवि पर एक ही तरह का औसत प्रदर्शन करते हैं। नीचे प्रसिद्ध Lenna छवि है। इसके आगे 7x7 औसत मास्क का उपयोग करके इसका औसत संस्करण है। आप देख सकते हैं कि यह चिकना हुआ या धुंधला है।

enter image description here

इस छवि को औसत के माध्यम से चौरसाई का एक बहुत ही साधारण उदाहरण था। औसत कम-पास फ़िल्टरिंग का केवल एक विशेष मामला है। आम तौर पर, हम वांछित कम-पास फ़िल्टर प्रभाव प्राप्त करने के लिए भारित औसत प्रदर्शन करते हैं। आगे पढ़ने के लिए, मैं फिल्टर सिद्धांत और दृढ़ संकल्प को देखने का सुझाव देता हूं।

मुझे उम्मीद है कि इससे मदद मिलती है।

2

Image Smoothing आमतौर पर Low Pass Filtering या getting rid of the high frequencies के समानार्थी है।


पृष्ठभूमि - क्या फ़िल्टर कर रही है:

ज्यादातर लोग समझते हैं कि क्या छानने सहज है। आप कुछ लेते हैं और इसे फ़िल्टर के माध्यम से पास करते हैं और कुछ हटाते हैं और आउटपुट में आपके द्वारा फ़िल्टर किए गए पदार्थ नहीं होते हैं। छवियों/2 डी और 1 डी संकेतों में आप फ़िल्टर कर सकते हैं।

जिस तरह से आप 2 डी या 1 डी छवि पर फ़िल्टरिंग लागू करते हैं, आउटपुट वाई बनाने के लिए इनपुट, एक्स, और फिल्टर, एच का एक रूपांतरण करना है।

void conv(float *x, int x_len, float * h, int h_len, float * y, int y_len) 
{ 
int i; 
register double accum; 
for(i = 0; i < x_len-h_len-1; i++) { 
    accum = 0; 
    for(j = 0; j < h_len; j++) { 
    accum += x[i+j] * h[j]; 
    } 
    y[i] = accum; 
} 
} 

int main { 
float x[] = {...}; 
int x_len = sizeof(x)/sizeof(x[0]); 
float h[] = {...}; 
int h_len = sizeof(h)/sizeof(h[0]); 
float y[x_len-h_len-1] = {0}; 
int y_len = x_len-h_len-1; 

conv(x,x_len,h,h_len,y,y_len); 
} 

सूचना कैसे इनपुट संकेत एक्स एच द्वारा फ़िल्टर किया जाता है:

यहाँ 1 दिन है कि मैं 5 मिनट में लिखा था और त्रुटियों की जांच नहीं की थी में घुमाव का एक उदाहरण है। फिर आउटपुट वाई में संग्रहीत किया जाता है। Google पर अधिक जानकारी खोज रूपांतरण के लिए।


कम पास छानने:

अब आप एक 1d संकेत फिल्टर करने के लिए कैसे पता है कि। आप कम पास फ़िल्टर कर सकते हैं। कम पास फ़िल्टर करने के लिए आप एक फिल्टर एच बनाते हैं जो केवल निम्न आवृत्तियों को ही देता है। सबसे सरल निम्न पास फ़िल्टर एक आयत फ़िल्टर h = ones(1,N); h = h ./ N; (matlab कोड) है। एक और जटिल फिल्टर एक गाऊशियन फ़िल्टर है (यह आमतौर पर छवि प्रसंस्करण में उपयोग किया जाता है। फ़ोटोशॉप/गिंप देखें और "गाऊशियन ब्लर" देखें)। कम पास फ़िल्टर बनाने के असीमित तरीके हैं।

कस्टम कम पास फ़िल्टर बनाने के लिए मनमाना विशिष्ट कम पास फ़िल्टर बनाने के लिए Parks-McClellan_filter_design_algorithm का उपयोग करें। अधिक जानकारी के लिए "कम पास फ़िल्टर बनाना" के लिए Google पर खोजें।

छवि ऐसा करने के लिए चौरसाई आप 1 दिन में एक ही बात है, लेकिन हर बार आप आप पाश के लिए एक डबल है (क्योंकि आप कर रहे हैं पाश के लिए एक एकल देखें: छवि समरेखण -


अंत में अपने सवाल का जवाब देने एक 2 डी सिग्नल)।

फ़िल्टर बनाना भी समान है लेकिन 1 डी सरणी फ़िल्टर होने के बजाय, एच, आपका फ़िल्टर एच अब दो आयामी है।

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