真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

跟我學(xué)Python圖像處理丨帶你掌握傅里葉變換原理及實(shí)現(xiàn)

摘要:傅里葉變換主要是將時(shí)間域上的信號(hào)轉(zhuǎn)變?yōu)轭l率域上的信號(hào),用來進(jìn)行圖像除噪、圖像增強(qiáng)等處理。

本文分享自華為云社區(qū)《[Python圖像處理] 二十二.Python圖像傅里葉變換原理及實(shí)現(xiàn)》,作者:eastmount。

十年的彝良網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整彝良建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“彝良網(wǎng)站設(shè)計(jì)”,“彝良網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

本文主要講解圖像傅里葉變換的相關(guān)內(nèi)容,在數(shù)字圖像處理中,有兩個(gè)經(jīng)典的變換被廣泛應(yīng)用——傅里葉變換和霍夫變換。其中,傅里葉變換主要是將時(shí)間域上的信號(hào)轉(zhuǎn)變?yōu)轭l率域上的信號(hào),用來進(jìn)行圖像除噪、圖像增強(qiáng)等處理。

圖像傅里葉變換原理

傅里葉變換(Fourier Transform,簡(jiǎn)稱FT)常用于數(shù)字信號(hào)處理,它的目的是將時(shí)間域上的信號(hào)轉(zhuǎn)變?yōu)轭l率域上的信號(hào)。隨著域的不同,對(duì)同一個(gè)事物的了解角度也隨之改變,因此在時(shí)域中某些不好處理的地方,在頻域就可以較為簡(jiǎn)單的處理。同時(shí),可以從頻域里發(fā)現(xiàn)一些原先不易察覺的特征。傅里葉定理指出“任何連續(xù)周期信號(hào)都可以表示成(或者無限逼近)一系列正弦信號(hào)的疊加。”

下面引用李老師“Python+OpenCV圖像處理”中的一個(gè)案例,非常推薦同學(xué)們?nèi)W(xué)習(xí)。如下圖所示,他將某飲料的制作過程的時(shí)域角度轉(zhuǎn)換為頻域角度。

繪制對(duì)應(yīng)的時(shí)間圖和頻率圖如下所示:

傅里葉公式如下,其中w表示頻率,t表示時(shí)間,為復(fù)變函數(shù)。它將時(shí)間域的函數(shù)表示為頻率域的函數(shù)f(t)的積分。

傅里葉變換認(rèn)為一個(gè)周期函數(shù)(信號(hào))包含多個(gè)頻率分量,任意函數(shù)(信號(hào))f(t)可通過多個(gè)周期函數(shù)(或基函數(shù))相加合成。從物理角度理解,傅里葉變換是以一組特殊的函數(shù)(三角函數(shù))為正交基,對(duì)原函數(shù)進(jìn)行線性變換,物理意義便是原函數(shù)在各組基函數(shù)的投影。如下圖所示,它是由三條正弦曲線組合成。

傅里葉變換可以應(yīng)用于圖像處理中,經(jīng)過對(duì)圖像進(jìn)行變換得到其頻譜圖。從譜頻圖里頻率高低來表征圖像中灰度變化劇烈程度。圖像中的邊緣信號(hào)和噪聲信號(hào)往往是高頻信號(hào),而圖像變化頻繁的圖像輪廓及背景等信號(hào)往往是低頻信號(hào)。這時(shí)可以有針對(duì)性的對(duì)圖像進(jìn)行相關(guān)操作,例如圖像除噪、圖像增強(qiáng)和銳化等。

二維圖像的傅里葉變換可以用以下數(shù)學(xué)公式(15-3)表達(dá),其中f是空間域(Spatial Domain))值,F(xiàn)是頻域(Frequency Domain)值

對(duì)上面的傅里葉變換有了大致的了解之后,下面通過Numpy和OpenCV分別講解圖像傅里葉變換的算法及操作代碼。

二.Numpy實(shí)現(xiàn)傅里葉變換

Numpy中的 FFT包提供了函數(shù) np.fft.fft2()可以對(duì)信號(hào)進(jìn)行快速傅里葉變換,其函數(shù)原型如下所示,該輸出結(jié)果是一個(gè)復(fù)數(shù)數(shù)組(Complex Ndarry)。

fft2(a, s=None, axes=(-2, -1), norm=None)

  • a表示輸入圖像,陣列狀的復(fù)雜數(shù)組
  • s表示整數(shù)序列,可以決定輸出數(shù)組的大小。輸出可選形狀(每個(gè)轉(zhuǎn)換軸的長(zhǎng)度),其中s[0]表示軸0,s[1]表示軸1。對(duì)應(yīng)fit(x,n)函數(shù)中的n,沿著每個(gè)軸,如果給定的形狀小于輸入形狀,則將剪切輸入。如果大于則輸入將用零填充。如果未給定’s’,則使用沿’axles’指定的軸的輸入形狀
  • axes表示整數(shù)序列,用于計(jì)算FFT的可選軸。如果未給出,則使用最后兩個(gè)軸?!癮xes”中的重復(fù)索引表示對(duì)該軸執(zhí)行多次轉(zhuǎn)換,一個(gè)元素序列意味著執(zhí)行一維FFT
  • norm包括None和ortho兩個(gè)選項(xiàng),規(guī)范化模式(請(qǐng)參見numpy.fft)。默認(rèn)值為無

Numpy中的fft模塊有很多函數(shù),相關(guān)函數(shù)如下:

#計(jì)算一維傅里葉變換
numpy.fft.fft(a, n=None, axis=-1, norm=None)
#計(jì)算二維的傅里葉變換
numpy.fft.fft2(a, n=None, axis=-1, norm=None)
#計(jì)算n維的傅里葉變換
numpy.fft.fftn()
#計(jì)算n維實(shí)數(shù)的傅里葉變換
numpy.fft.rfftn()
#返回傅里葉變換的采樣頻率
numpy.fft.fftfreq()
#將FFT輸出中的直流分量移動(dòng)到頻譜中央
numpy.fft.shift()

下面的代碼是通過Numpy庫實(shí)現(xiàn)傅里葉變換,調(diào)用np.fft.fft2()快速傅里葉變換得到頻率分布,接著調(diào)用np.fft.fftshift()函數(shù)將中心位置轉(zhuǎn)移至中間,最終通過Matplotlib顯示效果圖。

# -*- coding: utf-8 -*-
import cv2as cv
import numpyas np
from matplotlib import pyplot as plt
#讀取圖像
img= cv.imread('test.png', 0)
#快速傅里葉變換算法得到頻率分布
f= np.fft.fft2(img)
#默認(rèn)結(jié)果中心點(diǎn)位置是在左上角,
#調(diào)用fftshift()函數(shù)轉(zhuǎn)移到中間位置
fshift= np.fft.fftshift(f) 
#fft結(jié)果是復(fù)數(shù), 其絕對(duì)值結(jié)果是振幅
fimg= np.log(np.abs(fshift))
#展示結(jié)果
plt.subplot(121), plt.imshow(img, 'gray'), plt.title('Original Fourier')
plt.axis('off')
plt.subplot(122), plt.imshow(fimg, 'gray'), plt.title('Fourier Fourier')
plt.axis('off')
plt.show()

當(dāng)前名稱:跟我學(xué)Python圖像處理丨帶你掌握傅里葉變換原理及實(shí)現(xiàn)
標(biāo)題來源:http://weahome.cn/article/dsogses.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部