亚洲国产日韩人妖另类,久久只有这里有精品热久久,依依成人精品视频在线观看,免费国产午夜视频在线

      
      

        計算機視覺 圖像的傅里葉變換

        計算機視覺 圖像的傅里葉變換

        目前計算機研究生在讀。主要研究方向是人工智能和群智能算法方向。目前熟悉python網(wǎng)頁爬蟲、機器學習、計算機視覺(OpenCV)、群智能算法。然后正在學習深度學習的相關內容。以后可能會涉及到網(wǎng)絡安全相關領域,畢竟這是每一個學習計算機的夢想嘛!目前更新:目前已經(jīng)更新了關于網(wǎng)絡爬蟲的相關知識、機器學習的相關知識、目前正在更新計算機視覺-OpenCV的相關內容。本文摘要

        本文我們將繼續(xù)講解OpenCV-圖像傅里葉變換的相關操作。文章目錄傅里葉基礎傅里葉基礎numpy實現(xiàn)逆傅里葉numpy實現(xiàn)頻域的高通濾波傅里葉OpenCV實現(xiàn)傅里葉OpenCV逆變換實現(xiàn)頻域的低通濾波傅里葉變換有什么應用場景傅里葉變換matlab實現(xiàn)

        傅里葉基礎

        法國數(shù)學家吉恩·巴普提斯特·約瑟夫·傅里葉被世人銘記的最大的貢獻是:他指出任何周期函數(shù)都可以表示為不同頻率的正弦和/或余弦之和的形式,每個正弦項和/或余弦項乘以不同的系數(shù)(現(xiàn)在稱該和為傅里葉級數(shù))。無論函數(shù)多么復雜,只要它是周期的,并且滿足某些適度的數(shù)學條件,都可以用這樣的和來表示。即一個復雜的函數(shù)可以表示為簡單的正弦和余弦之和。甚至非周期函數(shù)(單該曲線下的面積是有限的)也可以用正弦和/或許·余弦乘以加權函數(shù)的積分來表示。在這種情況下的公式就是傅里葉公式。

        比如說我們以制作一個飲料的過程,使用時域角度來看就是這樣:

        這里是什么意思呢,就是說一個飲料的制作需要在18點整放1個單位冰糖、3個單位紅豆、2個單位的綠豆、4個單位的西紅柿,還有1個單位的純凈水。然后再18:01分只需要假如一個單位的純凈水。后面也是一致。而頻域是怎么描述這件事的呢?

        具體來說就是說他發(fā)現(xiàn)了一個規(guī)律,就是說這個制作過程,每分鐘都要加入冰糖,每兩分鐘都要加入紅豆,每三分鐘都要加入一次綠豆…。對于時域角度我們這樣描述。

        對于頻域角度我們這樣描述這件事,用直方圖表示就是:

        如果要考慮更精準的時間精度,我們就要引入相位這個概念。他是一個和時間差有關的一個表述。

        這里我們說明一下就是時域和頻域的表述是互逆的,對于時域我們是時間為橫坐標,振幅為縱坐標。對于頻域我們以頻率為橫坐標,振幅為縱坐標。但是可以看得出來頻域的表述更加簡單,但是比較抽象,不容易理解。傅里葉說:任何連續(xù)周期信號,可以由一組適當?shù)恼仪€組合而成。注意這里是一組而不是一個。比如對于這樣的一個圖像:f(x)=3np.sin(0.8x)+7np.sin(1/3x)+2np.sin(0.2x)

        看上去是毫無規(guī)律可言吧,但是它也可以由一組正弦函數(shù)組成。

        他們是可逆的,想不到吧,亂七八糟的東西也有規(guī)律了。但是他們就是這樣組合而成的嗎?不可能吧,所以這里就是不是同時開始的一組余弦函數(shù),在疊加時要體現(xiàn)開始的時間。也就說組合的函數(shù)他們的開始時間是不一樣的。在這里分別對應0,2,3.看公式就看出來啦。這里多說一嘴就是說傅里葉變換從時域角度來看,這個世界是動態(tài)的!從頻域角度來看這個世界是靜止的。從數(shù)學角度來講:傅里葉變換將一個任意的周期函數(shù)分解成為無窮個正弦函數(shù)的和的形式。從物理角度來講:傅里葉變換實現(xiàn)了將信號從空間域到頻率域的轉換。

        傅里葉基礎numpy實現(xiàn)

        python是可以實現(xiàn)傅里葉變換的,這里就要說到三劍客的numpy了。對應的函數(shù)是:numpy.fft.fft2返回一個復數(shù)數(shù)組(complex ndarray)。numpy.fft.fftshift這個函數(shù)時表示把將零頻率分量移到頻譜中心。

        還要設置頻譜的范圍20*np.log(np.abs(fshift)),對于圖像來說就是255了。

        import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread(‘imagelena.bmp’,0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f)result = 20*np.log(np.abs(fshift))plt.subplot(121)plt.imshow(img, cmap = ‘gray’)plt.title(‘original’)plt.axis(‘off’)plt.subplot(122)plt.imshow(result, cmap = ‘gray’)plt.title(‘result’)plt.axis(‘off’)plt.show()12345678910111213141516

        結果是:

        原圖和頻譜圖像。

        • 傅里葉得到低頻、高頻信息,針對低頻、高頻處理能夠實現(xiàn)不同的 目的。
        • 傅里葉過程是可逆的,圖像經(jīng)過傅里葉變換、逆傅里葉變換后,能 夠恢復到原始圖像
        • 在頻域對圖像進行處理,在頻域的處理會反映在逆變換圖像上

        逆傅里葉numpy實現(xiàn)

        對于傅里葉的逆操作這里沒有什么可說的,就是把頻域圖像轉回原圖像。

        函數(shù)是:numpy.fft.ifft2,那么還有一個操作就是把中間移動回去對啊。numpy.fft.ifftshift。iimg = np.abs(逆傅里葉變換結果)而第二個圖就表示低頻部分,邊緣就表示為高頻部分。

        import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread(‘imageboat.bmp’,0)f = np.fft.fft2(img)fshift = np.fft.fftshift(f)ishift = np.fft.ifftshift(fshift)iimg = np.fft.ifft2(ishift)iimg = np.abs(iimg)plt.subplot(121),plt.imshow(img, cmap = ‘gray’)plt.title(‘original’),plt.axis(‘off’)plt.subplot(122),plt.imshow(iimg, cmap = ‘gray’)plt.title(‘iimg’),plt.axis(‘off’)plt.show()1234567891011121314

        首先我們要進行傅里葉變換吧,才可以進行逆操作。結果是:

        完全一致?。?!

        鄭重聲明:本文內容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權歸原作者所有,如有侵權請聯(lián)系管理員(admin#wlmqw.com)刪除。
        上一篇 2022年6月27日 06:16
        下一篇 2022年6月27日 06:17

        相關推薦

        聯(lián)系我們

        聯(lián)系郵箱:admin#wlmqw.com
        工作時間:周一至周五,10:30-18:30,節(jié)假日休息