एक छवि में "आवृत्ति" का क्या अर्थ है?


30

मुझे समझ में नहीं आता कि कैसे छवियों / तस्वीरों में आवृत्तियों को परिभाषित किया जाता है। जहां तक ​​मैं इसे अब तक समझ रहा हूं, उच्च आवृत्तियों छवियों में तेज चीजों की तरह हैं, जैसे कि किनारों या तो, और निम्न आवृत्तियां किस तरह के विपरीत हैं?

मैं असतत फूरियर ट्रांसफॉर्मेशन के परिणाम को भी समझना चाहूंगा, जैसे कि उन्हें ठीक से कैसे पढ़ा जाए।

यह अच्छा होगा अगर कोई मुझे निम्नलिखित समझा सकता है:

  1. चित्रों में आवृत्तियों क्या हैं और उन्हें कैसे परिभाषित किया गया है?

  2. आप एक असतत फूरियर रूपांतरण के परिणाम को कैसे पढ़ते हैं?



धन्यवाद, मैं पहले से ही इसे पढ़ता हूं, इससे मुझे मदद मिली, लेकिन मैं अभी भी थोड़ा अनाड़ी हूं।
जैकब एब्फाल्टर

जवाबों:


44

मैं केवल पहले प्रश्न का उत्तर दूंगा: छवियों में आवृत्तियों क्या हैं?

फूरियर ट्रांसफॉर्म एक गणितीय तकनीक है जहां एक ही छवि जानकारी को प्रत्येक पिक्सेल के लिए अलग-अलग नहीं बल्कि प्रत्येक आवृत्ति के लिए दर्शाया जाता है। इस तरह से इसके बारे में सोचो। समुद्र में कुछ लहरें होती हैं जो बहुत धीमी गति से चलती हैं (जैसे ज्वार), अन्य आकार में मध्यम होती हैं और फिर भी कुछ अन्य छोटे होते हैं जैसे कि एक कण्ठ से निर्मित तरंग। आप उन्हें तीन अलग-अलग तरंगों के रूप में सोच सकते हैं लेकिन समुद्र की सतह पर प्रत्येक बिंदु पर और समय में एक पल, आपको पानी की सिर्फ एक ऊंचाई मिलती है।

छवियों पर भी यही बात लागू होती है। आप विभिन्न तरंगों या आवृत्तियों से बनी छवि के बारे में सोच सकते हैं। अपनी छवि बनाने के लिए, औसत रंग से शुरू करें (वास्तव में ग्रे स्केल छवियों के बारे में सोचना आसान है)। फिर तस्वीर में धीरे-धीरे विवरण बनाने के लिए अलग-अलग तरंगों की लंबाई और ताकत जोड़ें।

स्रोत छवि:

सोर्स इमेज

पहली आवृत्ति (औसत):

औसत

ऊर्ध्वाधर आयाम के साथ दूसरी आवृत्ति छवि के तल पर शून्य से शुरू होने वाली एक लहर है, बढ़ती है, केंद्रित क्षितिज के साथ फिर से शून्य हो जाती है और शून्य से नीचे गिरकर अंत में छवि के शीर्ष पर शून्य हो जाती है। (मैंने चरण बदलाव के बिना एक फूरियर श्रृंखला का वर्णन किया, लेकिन सादृश्य अभी भी बरकरार है।)

यहां आप क्षैतिज और ऊर्ध्वाधर के साथ दूसरी आवृत्ति देख सकते हैं। ध्यान दें कि आप यह पता लगा सकते हैं कि पहाड़ कहाँ होगा (अंधेरा) और जहाँ आकाश और झील (हल्का) होगा।

दूसरी आवृत्ति:

पहला घटक

प्रत्येक अतिरिक्त लहर या आवृत्ति अधिक तरंगों को साथ लाती है और जैसे, अधिक विस्तार। विभिन्न छवियों को प्राप्त करने के लिए, लहर की ऊंचाई / आयाम को लहर के शुरुआती बिंदु के रूप में भी बदला जा सकता है, जिसे चरण भी कहा जाता है।

तीसरी आवृत्ति:

तीसरा

दिलचस्प बात यह है कि इस प्रतिनिधित्व में सूचना राशि समान है और व्यक्ति सामान्य छवियों (स्थानिक डोमेन) और फूरियर ट्रांसफ़ॉर्मेड छवियों (फ़्रीक्वेंसी डोमेन) के बीच आगे-पीछे जा सकता है। आवृत्ति डोमेन में हमें आयाम और चरण की जानकारी के साथ सभी आवृत्तियों की जानकारी रखने की आवश्यकता होती है।

यहां यह 50% आवृत्तियों का उपयोग कर रहा है:

50%

इस सभी के वेरिएंट हैं, जिनमें फूरियर सीरीज़, फूरियर ट्रांसफॉर्म और डिसक्रीट फूरियर ट्रांसफॉर्म और डिसक्रीट कोसाइन ट्रांसफॉर्म (DCT) के बीच अंतर है।

एक दिलचस्प अनुप्रयोग JPEG जैसे संपीड़न एल्गोरिदम के उपयोग में है। यहां डीसीटी का उपयोग छवि के महत्वपूर्ण हिस्सों (कम आवृत्तियों) और उच्च आवृत्तियों के कम बचाने के लिए किया जाता है।

मैंने यह इस उम्मीद में लिखा है कि नौसिखिए पाठकों को फूरियर ट्रांसफॉर्म के विचार की बुनियादी समझ मिल सकती है। इसके लिए मैंने कुछ सरलीकरण किए, मुझे आशा है कि अधिक उन्नत पाठक मुझे क्षमा करेंगे।

एनिमेटेड

थॉमस Devoogdt द्वारा उत्पन्न वीडियो में देखा जा सकता Vimeo

एनिमेटेड


पोस्ट-प्रोसेसिंग में आवृत्ति

ऐसे कई तरीके हैं जो पोस्ट प्रोसेसिंग के लिए आवृत्तियों पर निर्भर करते हैं, ज्यादातर इसलिए क्योंकि हम कभी भी व्यक्तिगत रूप से एकल पिक्सेल नहीं देखते हैं। कई एल्गोरिदम आवृत्ति पर काम करते हैं क्योंकि उनके बारे में इस तरह से सोचना अधिक स्वाभाविक है। लेकिन इसलिए भी क्योंकि फूरियर ट्रांसफॉर्म में वही जानकारी होती है जो हम आवृत्ति और गोलाकार डोमेन में किसी भी गणितीय ऑपरेशन (या पोस्ट प्रोसेसिंग स्टेप) को व्यक्त कर सकते हैं! कभी-कभी पिक्सेल-वार विवरण बेहतर होता है लेकिन अक्सर आवृत्ति विवरण बेहतर होता है। (बेहतर इस अर्थ में मुख्य रूप से तेज है।)

एक तकनीक जिसे मैं बिना किसी विशेष कारण के इंगित करना चाहूंगा, सिवाय इसके कि यह आवृत्तियों के साथ सीधे काम करने वाला कलाकार है और वह है * आवृत्ति पृथक्करण *। मैं इसका वर्णन नहीं करने जा रहा हूं, लेकिन आप यह देख सकते हैं कि यह फ़ोटोशॉप और जीआईएमपी दोनों के लिए YouTube पर कैसे काम करता है।

आप कम आवृत्तियों के साथ दो परतें बनाते हैं और उच्च आवृत्तियों के साथ एक। पोर्ट्रेट्स के लिए आप कम आवृत्तियों में त्वचा की टोन को प्रभावित किए बिना उच्च आवृत्तियों पर त्वचा को चौरसाई कर सकते हैं।

कोड

उपरोक्त उदाहरणों को उत्पन्न करने के लिए यह कुछ कोड है। इसे एक साधारण पायथन प्रोग्राम के रूप में चलाया जा सकता है।

from PIL import Image
from numpy.fft import rfft2, irfft2
import numpy as np

def save_dims(ft, low, high, name):
    ft2 = np.zeros_like(ft)
    # copy the frequencies from low to high but all others stay zero.
    ft2[low:high, low:high] = ft[low:high, low:high]
    save(ft2, name)

def save(ft, name):
    rft = irfft2(ft)
    img = Image.fromarray(rft)
    img = img.convert('L')
    img.save(name)

def main():
    # Convert input into grayscale and save.
    img = Image.open("input.jpg")
    img = img.convert('L')
    img.save('input_gray.png')
    # Do Fourier Transform on image.
    ft = rfft2(img)
    # Take only zeroth frequency and do Inverse FT and save.
    save_dims(ft, 0, 1, 'output_0.png')
    # Take first two frequencies in both directions.
    save_dims(ft, 0, 2, 'output_1.png')
    save_dims(ft, 0, 3, 'output_2.png')
    # Take first 50% of frequencies.
    x = min(ft.shape)
    save_dims(ft, 0, x/2, 'output_50p.png')

def generateGif():
    ''' Generates images to be later converted to a gif.
    This requires ImageMagick:
    convert -delay 100 -loop 0 output_*.png animation.gif
    '''
    # Requires images2gif from code.google.com/p/visvis/source/browse/vvmovie/images2gif.py 
    # from images2gif import writeGif

    img = Image.open('input.jpg')
    img = img.convert('L')
    # Resize image before any calculation.
    size = (640,480)
    img.thumbnail(size, Image.ANTIALIAS)
    ft = rfft2(img)

    images = []
    for x in range(0, max(ft.shape)):
        ft2 = np.zeros_like(ft)
        ft2[0:x, 0:x] = ft[0:x,0:x]
        rft = irfft2(ft2)
        img_out = Image.fromarray(rft).convert('L')
        fname = 'animation/output_%05d.jpg' %(x, )
        img_out.save(fname, quality=60, optimize=True)

    #writeGif('animation.gif', images, duration=0.2)


if __name__=='__main__':
    main()
    #generateGif()

यह स्पष्ट किया जाना चाहिए कि, जबकि सैद्धांतिक रूप से हम यह मान सकते हैं कि हमारे पास हाथ में छवि का असीम ज्ञान था, इसे घटक आवृत्तियों के लिए विघटित कर दें और इसे बिना किसी नुकसान के पुन: प्रस्तावित करें ... वास्तविक दुनिया में हम नहीं कर सकते। एक वास्तविक विश्व छवि का रूपांतरण, जो ऑप्टिकल पाइपलाइन के साथ प्रत्येक "इंटरफ़ेस" पर होता है, प्रभावी रूप से एक अपरिवर्तनीय प्रक्रिया है। हम कभी भी सभी कन्वेंशन कारकों को नहीं जान सकते हैं, और एक छवि में वापस एफएफटी का पुनर्निर्माण मुश्किल है, और चरम संशोधनों में आमतौर पर कलाकृतियों और डेटा का नुकसान होता है।
jrista

@ जिरस्टा मुझे लगता है कि अनएपिड्रा के बारे में यह बात उलट गई थी कि एक बार जब आप डिजिटल छवि (कंप्यूटर पर पिक्सेल की एक सरणी) के साथ काम कर रहे होते हैं , तो आप फ़्रीक्वेंसी स्पेस और बैक पर जा सकते हैं, और उसी छवि को प्राप्त कर सकते हैं जिसे आपने शुरू किया था। आप भौतिक इमेजिंग सिस्टम (लेंस और इस तरह) की एक बड़ी तस्वीर देख रहे हैं, जहां वास्तविक दुनिया सीमाएं घुसपैठ करती हैं।
कोन्सलेयर

3
jrista की टिप्पणी में यह भ्रामक है कि सूचना हानि के लिए FT को दोषी ठहराया गया है। बेशक, फोटोग्राफी एक हानिपूर्ण प्रक्रिया है और इसलिए पोस्ट-प्रोसेसिंग है। यदि मैं फूरियर स्पेस में एक असतत छवि को परिवर्तित करता हूं, तो वहां कुछ हानिपूर्ण प्रसंस्करण करें, और फिर वापस कन्वर्ट करें, निश्चित रूप से मैं ढीली जानकारी देता हूं। लेकिन यह प्रोसेसिंग चरण में होता है न कि रूपांतरण चरण में। सच है, मशीन परिशुद्धता के कारण हर गणितीय ऑपरेशन जानकारी खो देता है, लेकिन अगर हम प्रति चैनल छवियों के बारे में 8 बिट की बात कर रहे हैं, तो हम मशीन परिशुद्धता त्रुटियों को नोटिस नहीं करेंगे।
अनपिड्रा

1
@ तुर्की, मुझे याद नहीं है कि मैं उस संदर्भ में विकर्ण का उल्लेख क्यों करता हूं। आप देख सकते हैं कि दूसरी आवृत्ति की प्रमुख दिशा उस विशेष विकर्ण की प्रतीत होती है। शायद इसीलिए। अपने प्रश्न का उत्तर देने के लिए, आपको केवल 2 डी छवि का प्रतिनिधित्व करने के लिए दो अक्षों की आवश्यकता होगी। यह महत्वपूर्ण है कि दो अक्ष ऑर्थोगोनल हैं। क्षैतिज और ऊर्ध्वाधर अक्ष उस मानदंड को पूरा करते हैं। (इसके अलावा वे व्यावहारिक हैं।) असतत छवियों (यानी पिक्सेल से बना) के साथ, अन्य सभी कोणों को खराब कर देगा।
अनपिड्रा

1
@ टर्की का सुधार, अनपिडेरा ने दूसरी आवृत्ति का वर्णन किया , पहला नहीं, जैसा 0, -1, 0, +1, 0. 2 आवृत्ति का वर्णन करने वाले पैराग्राफ 1 आवृत्ति छवि (समान ग्रे छवि) के तुरंत बाद हैं, और मैं कर सकता हूं यह देखें कि उस पैराग्राफ को पूर्ववर्ती छवि के विवरण के रूप में पढ़ना कितना आकर्षक हो सकता है (लेख अक्सर एक छवि दिखाते हैं, फिर छवि के बाद पाठ में इसका वर्णन करें), लेकिन इस मामले में नहीं। =)
scottbb

9

मैं संभव सबसे सरल गणित शब्दों के साथ समझाने की कोशिश करूंगा। यदि आप गणित को छोड़ना चाहते हैं, तो भाग II पर कूदें, यदि आप भाग III को संक्षिप्त उत्तर छोड़ना चाहते हैं

भाग I

एक सिग्नल की आवृत्ति का अर्थ है समय की प्रति यूनिट एक दोहराई जाने वाली घटनाओं की संख्या। इसलिए यदि समय की इकाई सेकंड है तो आवृत्ति को हर्ज़: 1 हर्ट्ज = 1 / एस से मापा जाता है। तो 100Hz के साथ एक सिग्नल, एक पैटर्न है जो प्रति सेकंड 100 बार दोहराता है।

सबसे बुनियादी संकेत (सिग्नल प्रोसेसिंग के दृष्टिकोण से) एक साइनस सिग्नल है।

y (t) = पाप (2πft)

जहां एफ इस साइनस सिग्नल की आवृत्ति है, और टी समय है। यदि यह संकेत ध्वनि और f 50Hz के आसपास था, तो आप एक बहुत कम बास टोन सुनेंगे। 15kHz की तरह उच्च आवृत्ति के साथ यह एक उच्च स्वर होगा।

अब अवधारणा को सामान्य करने के लिए, संकेत एक अस्थायी संकेत के बजाय एक स्थानिक संकेत हो सकता है ... जैसे कि आप कागज के एक टुकड़े पर साइनस की लहर खींचते हैं, एक्स के साथ एक अक्ष दाईं ओर इशारा करता है, और वाई अक्ष सीधा एक्स अक्ष के लिए।

y (x) = sin (2πfx)

जहाँ f सिग्नल की आवृत्ति है, और x स्पेसियल वेरिएबल है। एफ यहां 1 / s के साथ मापा नहीं जाता है, लेकिन 1 / (अंतरिक्ष की इकाई)।

फूरियर एक फ्रांसीसी गणितज्ञ ने दिखाया कि आप विभिन्न आयामों और आवृत्तियों के साथ कई साइन और कोसाइन संकेतों को जोड़कर कोई भी संकेत उत्पन्न कर सकते हैं। इसे फूरियर विश्लेषण कहा जाता है।

फूरियर विश्लेषण का उपयोग करके किसी भी फ़ंक्शन y (x) को विभिन्न आवृत्तियों के साथ साइन और कोज़ाइन संकेतों के योग के रूप में लिखना संभव है, इसलिए फ़्रीक्वेंसी Y (f) से संबंधित कई फ़ंक्शन के संदर्भ में एक फ़ंक्शन y (x) को फिर से लिखा जा सकता है। कोई कह सकता है कि y (x) = Some_Function (Y (f))। या Y (f) = Reverse_of_Some_Function (y (x))

फूरियर ट्रांसफॉर्म फंक्शन एफ है जो x डोमेन से एक सिग्नल को फ्रीक्वेंसी डोमेन में बदल देता है।

Y(f) = F( y(x) )

y(x) = F_inv(Y(f))

एफ एक एनालॉग फ़ंक्शन है, असतत फूरियर ट्रांसफॉर्मेशन डीएफटी एफ का संख्यात्मक अनुमान है। फास्ट फूरियर ट्रांसफॉर्मेशन एफएफटी गति के लिए डीएफटी को अनुकूलित करने का एक तरीका है।

ठीक है...

भाग द्वितीय

अब कंप्यूटर चित्र पिक्सेल से बने होते हैं, और प्रत्येक पिक्सेल में लाल, हरा, नीला उर्फ ​​आरजीबी मानों की तीव्रता होती है। ग्रेस्केल छवियों में किसी भी पिक्सेल के आर, जी, बी के लिए तीव्रता बराबर है, आर = जी = बी = मैं इसलिए हम ग्रेस्केल छवियों के बारे में बात कर सकते हैं।

नीचे दिए गए 800px X 100px ग्रेस्केल चित्र I (x) = sin (2πfx) का उपयोग करके उत्पन्न किया गया था जहाँ f = 1 पुनरावृत्ति / 800px = 0.00125 पुनरावृत्ति / px

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

आप इसे पायथन 3 के साथ स्वयं उत्पन्न कर सकते हैं

from PIL import Image, ImageDraw
from math import sin, pi

img = Image.new('RGB', (800,100), color='black')
draw = ImageDraw.draw(img)

#cacluate the frequency
n = 10 #repetitions
f = n/img.width #

#iterate of the width pixels
for x in range(img.width):
 #calculate the intensity i in that pixel x
 y = sin(2*pi*f*x - pi/2) #this will generate values between -1 and +1, -pi/2 is to make sure that i starts with value 0 in the next line.
 i = (255+255*y)/2 #shifting and scaling y so that the values are between 0 and 255
 draw.line((i,0,i,img.height), fill=(int(i),int(i),int(i)))

img.show()

नीचे दिए गए 800px X 100px ग्रेस्केल चित्र I (x) = sin (2πfx) का उपयोग करके उत्पन्न किया गया था जहाँ f = 10repetitions / 800px = 0.0125 repetitions / px

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

अब यह देखना आसान है कि इस छवि में 10. की क्षैतिज आवृत्ति है। चलो 10 के एक कारक द्वारा आवृत्ति बढ़ाते हैं, ताकि n = 100. f = 100/800 = 1/8 = 0.125 पुनरावृत्ति / px:

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

जैसा कि पहले उल्लेख किया गया है, आप विभिन्न आवृत्तियों के साथ साइन सिग्नल (1D ग्रेस्केल साइन छवियों) की एक श्रृंखला के रूप में किसी भी संकेत (1D ग्रेस्केल छवि) का प्रतिनिधित्व कर सकते हैं।

भाग III

तो एक 1 डी ग्रेस्केल छवि ए में एक और ग्रेस्केल छवि बी की तुलना में उच्च आवृत्तियां हैं यदि ए में "महीन" विवरण है।

आप उस सिद्धांत को 2 डी और यहां तक ​​कि 3 डी चित्रों को सामान्य कर सकते हैं। किसी छवि का "विवरण" जितना महीन होता है, उस छवि की आवृत्ति सामग्री उतनी ही अधिक होती है।

तो एक नीला आकाश एक फूल की छवि की तुलना में कम आवृत्ति है।

आप फूरियर विश्लेषण, और डिजिटल इमेज प्रोसेसिंग के बारे में पढ़कर इसके बारे में अधिक जान सकते हैं।


4

संक्षेप में, आवृत्ति परिवर्तन की दर को संदर्भित करती है। अधिक सटीक रूप से, आवृत्ति परिवर्तन की अवधि का विलोम है - अर्थात् , एक चमक (या जो भी) से एक अलग चमक और फिर से वापस करने के लिए समय की मात्रा होती है। तेजी से तब परिवर्तन (जैसे प्रकाश से अंधेरे तक), छवि के उस हिस्से का प्रतिनिधित्व करने के लिए आवश्यक दृश्य "आवृत्ति" जितना अधिक होगा।

दूसरे शब्दों में, आप परिवर्तन की दर के रूप में एक छवि में आवृत्ति के बारे में सोच सकते हैं। छवि के वे भाग जो एक रंग से दूसरे रंग में तेजी से बदलते हैं (जैसे तेज किनारों) में उच्च आवृत्तियाँ होती हैं, और जो भाग धीरे-धीरे बदलते हैं (जैसे ठोस रंगों वाली बड़ी सतहों) में केवल कम आवृत्तियाँ होती हैं।

जब हम डीसीटी और एफएफटी और इसी तरह के अन्य परिवर्तनों के बारे में बात करते हैं, तो हम आम तौर पर उन्हें एक छवि के एक हिस्से (जैसे जेपीईजी संपीड़न, बढ़त का पता लगाने, और इसी तरह) पर कर रहे हैं। परिवर्तनों के बारे में बात करना सबसे अधिक समझ में आता है, फिर, किसी दिए गए आकार के परिवर्तन ब्लॉक के संदर्भ में ।

कल्पना कीजिए, यदि आप करेंगे, तो छवि डेटा का एक 32 पिक्सेल x 32 पिक्सेल ब्लॉक। (यह संख्या मनमानी है।) मान लीजिए कि छवि एक साधारण ढाल है जो बाईं ओर सफेद है, बीच में काला है, और दाईं ओर सफेद है। हम कहेंगे कि इस सिग्नल में एक अवधि है जो लगभग 32 पिक्सेल चौड़ाई के प्रति एक तरंग दैर्ध्य है, क्योंकि यह हर 32 पिक्सेल में फिर से सफेद से काले तक एक पूर्ण चक्र से गुजरता है।

हम मनमाने ढंग से इस आवृत्ति को "1" कह सकते हैं - 1 चक्र प्रति 32 पिक्सेल, अर्थात। मैं अस्पष्ट रूप से याद करता हूं कि इसे आमतौर पर पाठ्यपुस्तकों को बदलने में that कहा जाता है, या शायद ely / 2, लेकिन मुझे गलत याद हो सकता है। किसी भी तरह से, हम इसे अभी के लिए 1 कहेंगे, क्योंकि यह वास्तव में एक पूर्ण अर्थ में मनमाना है; एक मायने में आवृत्तियों के बीच संबंध क्या मायने रखता है। :-)

मान लीजिए कि आपके पास एक दूसरी छवि है जो एक किनारे पर सफेद है, तो दो बार जल्दी से फीका हो जाता है ताकि यह सफेद से काले, सफेद से काले, और फिर से दूसरे किनारे पर सफेद हो जाए। फिर हम उस आवृत्ति को "2" कहेंगे क्योंकि यह उस 32 पिक्सेल ब्लॉक की चौड़ाई पर दो बार बदलती है।

अगर हम उन सरल चित्रों को फिर से बनाना चाहते हैं, तो हम शाब्दिक रूप से कह सकते हैं कि प्रत्येक पंक्ति में 1 या 2 की आवृत्ति के साथ एक संकेत होता है, और आपको पता चल जाएगा कि चित्र क्या दिखते हैं। यदि चित्र काले से 50% ग्रे में चले गए, तो आप एक ही काम कर सकते हैं, लेकिन आपको यह कहना होगा कि उनके पास 50% की तीव्रता पर 1 या 2 की आवृत्ति थी।

वास्तविक दुनिया की छवियां, निश्चित रूप से एक साधारण ढाल नहीं हैं। जब आप बाएं से दाएं स्कैन करते हैं तो छवि बार-बार बदलती है और समय-समय पर नहीं। हालाँकि, एक छोटे से पर्याप्त ब्लॉक (उदाहरण के लिए 8 पिक्सेल, 16 पिक्सेल) के साथ आप पिक्सेल की उस पंक्ति को संकेतों की एक श्रृंखला के योग के रूप में अनुमानित कर सकते हैं, पंक्ति में पिक्सेल मूल्यों के औसत के साथ शुरू होता है, उसके बाद "की मात्रा" आवृत्ति 0.5 "संकेत (एक तरफ काला, सफेद करने के लिए लुप्त होती) (या नकारात्मक राशि के साथ मिश्रण करने के लिए, उस संकेत की राशि को घटाना), इसके बाद आवृत्ति 1, आवृत्ति 2, आवृत्ति 4, और इसी तरह की राशि ।

अब एक छवि अद्वितीय है कि इसमें दोनों दिशाओं में आवृत्ति है; क्षैतिज और लंबवत रूप से गतिशील होने पर यह हल्का और गहरा हो सकता है। इस कारण से, हम 1D के बजाय 2D DCT या FFT ट्रांसफ़ॉर्म का उपयोग करते हैं। लेकिन सिद्धांत अभी भी मूल रूप से समान है। आप ठीक उसी तरह के आकार की बाल्टियों के 8x8 ग्रिड के साथ एक 8x8 छवि का प्रतिनिधित्व कर सकते हैं।

रंग के कारण छवियां भी अधिक जटिल हैं, लेकिन हम अभी के लिए इसे अनदेखा कर देंगे, और मान सकते हैं कि हम केवल एक एकल छवि देख रहे हैं जैसा कि आप अलगाव में एक तस्वीर के लाल चैनल को देखकर प्राप्त कर सकते हैं।

रूपांतर के परिणामों को कैसे पढ़ा जाए, इस पर निर्भर करता है कि आप 1D रूपांतरण या 2 डी परिवर्तन देख रहे हैं। 1D ट्रांसफ़ॉर्म के लिए, आपके पास बिन्स की एक श्रृंखला है। पहला सभी इनपुट मानों का औसत है। दूसरा जोड़ने के लिए आवृत्ति 1 संकेत की मात्रा है, तीसरा आवृत्ति 2 संकेत जोड़ने की राशि है, आदि।

2 डी रूपांतरण के लिए, आपके पास मानों का एक n x n ग्रिड है। ऊपरी बाएं आम तौर पर औसत है, और जैसा कि आप क्षैतिज दिशा में जाते हैं, प्रत्येक बाल्टी में 1, 2, 4, आदि की क्षैतिज आवृत्ति के साथ मिश्रण करने के लिए संकेत की मात्रा होती है और जैसा कि आप ऊर्ध्वाधर दिशा में जाते हैं, यह 1, 2, 4, आदि की ऊर्ध्वाधर आवृत्ति के साथ मिश्रण करने के लिए संकेत की मात्रा है।

यदि आप एक डीसीटी के बारे में बात कर रहे हैं, तो निश्चित रूप से, पूरी कहानी; इसके विपरीत, FFT के लिए प्रत्येक बिन में वास्तविक और काल्पनिक भाग होते हैं। एफएफटी अभी भी एक ही मूल विचार (प्रकार) पर आधारित है, सिवाय इसके कि जिस तरह से आवृत्तियों को डिब्बे पर मैप किया जाता है वह अलग है और गणित बालों वाला है। :-)

बेशक, इन प्रकार के परिवर्तनों को उत्पन्न करने का सबसे आम कारण तब एक कदम आगे जाना और कुछ डेटा को दूर फेंकना है। उदाहरण के लिए, डीसीटी का उपयोग जेपीईजी संपीड़न में किया जाता है। ज़िग-ज़ैग पैटर्न में मूल्यों को पढ़ने से ऊपरी बाएँ (औसत) से शुरू होता है और निचले दाईं ओर बढ़ता है, सबसे महत्वपूर्ण डेटा (औसत और कम-आवृत्ति जानकारी) पहले दर्ज किया जाता है, इसके बाद उत्तरोत्तर उच्च आवृत्ति डेटा होता है। कुछ बिंदु पर, आप मूल रूप से "यह काफी अच्छा है" कहते हैं और उच्चतम-आवृत्ति डेटा को फेंक देते हैं। यह अनिवार्य रूप से अपनी बारीक डिटेल को निकालकर इमेज को स्मूथ बनाता है, लेकिन फिर भी आपको लगभग सही इमेज देता है।

और IIRC, FFTs का उपयोग कभी-कभी धार का पता लगाने के लिए भी किया जाता है, जहां आप तेज किनारों पर उच्च विपरीत के क्षेत्रों का पता लगाने के साधन के रूप में सभी लेकिन उच्च आवृत्ति घटकों को फेंक देते हैं।

नेशनल इंस्ट्रूमेंट्स का एक अच्छा लेख है जो चित्रों के साथ यह बताता है। :-)


0

एक फोटोकेल के साथ लाइन द्वारा छवि रेखा को स्कैन करने की कल्पना करें, और एक आलेखक को परिणाम खिलाएं (ये फ्लैट मशीन जो कागज पर काली तरंगें बनाते हैं), आस्टसीलस्कप (ये बक्से जो एक स्क्रीन पर झिलमिलाती हरी लहरें बनाते हैं) या स्पेक्ट्रम विश्लेषक (बड़े बक्से) हरे या बहु रंग की पिकेट की बाड़ बनाते हैं)। या लाउडस्पीकर भी। एक छवि में संरचनाएं जितनी महीन होंगी, दिखाए गए / सुने गए सिग्नल की उच्च आवृत्तियों (लाउडस्पीकर में पिच) होगी। ठीक संरचनाओं में जितना अधिक विपरीत होगा, सिग्नल के उच्च-आवृत्ति भागों का आयाम जितना अधिक होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.