傅立葉變換還能畫簡筆畫?谷歌工程師開發的這個試玩網站火了| 附資源

2021-01-10 電子工程世界
曉查 發自 凹非寺 
量子位 報導 | 公眾號 QbitAI

無論是處理聲音和圖像信號,都必須用到傅立葉變換。其實除了這些「正經」用途,它還能做一些有意思的事情。

最近,一位名叫Jez Swanson的谷歌工程師自己寫了篇博客,教你用傅立葉變換畫出任何簡筆畫。目前已在Twitter已經收穫了3000+點讚。

什麼是傅立葉變換

簡而言之,傅立葉變換是將某些東西分解成一系列正弦波,而正弦波是最簡單的周期函數。

我們先從一些簡單的例子開始,比如下面的波形可以分解成兩個正弦波。

反過來說,傅立葉變換也是組合波形的一種方式。把這兩個正弦波疊加起來,就得到上方的波形。

即使是看起來並不平滑的方波,也能分解成正弦波。

但是方波和前面波形不同,它在進行疊加操作的時候會有困難。因為方波的成分包含無數正弦波。但是在現實世界中,我們不可能能疊加無限多的波形。

如果我們截取其中主要的部分,就能得到近似的方波波形。隨著高頻的成分越來越多,圖形也會越來越接近方波。

接下來,我們在互動頁面上隨便畫出一個波形,

通常計算機會離散地記錄下波形上一些點的數值,然後對它們做傅立葉變換,最終得到的波形與原始波形非常相似

這也是計算機處理聲音的方式,MP3文件就是這麼做的。

通常計算機會把聲波存儲為一系列點,點的密集程度決定了捨棄掉多高的頻率。電腦只存儲那些前面低頻部分,忽略聲音裡的高頻,這就是MP3壓縮的原理。

從三維角度理解

上面簡單介紹了傅立葉變換的基本知識。如果你學過一點三角函數的知識,就知道正弦波其實和圓有密切的關係。

我們一邊畫圓,一邊讓繪製點隨著時間前進,就得到在三維空間中的螺旋線圖像。

它從側面來看就是正弦波:

疊加的「輪子」

既然正弦波可以理解成圓周運動的投影,那麼傅立葉變換就可以理解成不同圓周運動的疊加。

每個輪子的轉速代表著頻率,輪子的半徑代表著振幅。

理解了以上內容,我們就可以用「三維正弦波」做一些有趣的事情,比如畫一個勝利手勢:

在三維角度看,它是這樣的:

我們可以將簡筆畫視為一個3D圖形。想像一個人正在畫一隻手,那麼這3D圖形就代表了筆尖位置的變化。x、y維度代表筆尖位置,z維度代表筆尖所在的某個時刻。

在這裡,我們使用的是3D螺旋正弦波的組合,來得到我們的圖像。

當我們從正面觀察這個3D圖像時,就會看到許多圓圈的疊加運動。我們把一個圓圍繞另一個圓旋轉叫做「本輪」(epicycle)。

和前面疊加出方波一樣。我們只用幾個圓圈就可以很好地逼近簡筆畫。前面的大圓確定圖像的大致形狀,而最後的小圓讓邊緣更銳利。

作者Jez已經把它做成Demo放在網站上試玩,還用它畫了一幅自畫像。

作者自畫像的傅立葉變換

最後奉上Jez本人照片:

自己動手

如果你覺得很酷炫,可以去Jez的個人博客網站去嘗試。

http://www.jezzamon.com/fourier/index.html

他還公布了交互部分的原始碼。這些交互元素大部分是用JS編寫的。

另外Jez還簡單介紹了傅立葉變換是如何用於JPEG圖像壓縮的,這部分內容使用了Python和Jupyter Notebook。並把說明文檔放在了Python文件夾中。

如果你想折騰JPEG圖像壓縮原理的部分,還需要安裝Jupyter,以及NumPy,PIL,SciPy和Matplotlib。

學習資料

Jez這篇博客的介紹還是非常簡略的,即使你完全沒有數學基礎也能上手。如果想更深入的學習傅立葉變換,Jez也給出了更多學習教程。

傅立葉變換的交互式學習指南:
https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/

數學播客「3Blue1Brown」的視頻教程:
http://www.bilibili.com/video/av19141078/

作者系網易新聞·網易號「各有態度」籤約作者


量子位AI社群開始招募啦,歡迎對AI感興趣的同學,在量子位公眾號(QbitAI)對話界面回復關鍵字「交流群」,獲取入群方式;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進專業群請在量子位公眾號(QbitAI)對話界面回復關鍵字「專業群」,獲取入群方式。(專業群審核較嚴,敬請諒解)

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。



相關焦點

  • 如何畫樹木簡筆畫-四種簡單的樹木簡筆畫教程
    這個教程將向大家展示如何畫樹木簡筆畫。 在開始作畫之前讓我們看看下面這張完整的樹木簡筆畫。 好了,小朋們有沒有發現,樹木簡筆畫其實很簡單。那現在就跟著我一起繪製樹木的簡筆畫吧!
  • 喇叭花簡筆畫教程,畫喇叭花簡筆畫,積木時光簡筆畫
    喇叭花簡筆畫教程,畫喇叭花簡筆畫第1種畫法,積木時光簡筆畫 喇叭花簡筆畫教程,畫喇叭花簡筆畫第2種畫法,積木時光簡筆畫
  • 動物簡筆畫大全:畫猛獁象簡筆畫
    點擊"積木時光"關注更多精彩簡筆畫、摺紙、剪紙免費教程等著你—— 簡筆畫範畫 ——猛獁象簡筆畫教程,畫猛獁象簡筆畫第1種畫法猛獁象簡筆畫教程,畫猛獁象簡筆畫第2種畫法猛獁象簡筆畫教程,畫猛獁象簡筆畫第3種畫法猛獁象簡筆畫教程
  • 蝴蝶怎麼畫 - 一看就會畫的蝴蝶簡筆畫
    蝴蝶的翅膀上面覆蓋著微小的鱗片,這些鱗片裡含著豐富的脂肪,還能把蝴蝶保護起來,就像是蝴蝶的一件雨衣,即使是下雨天,蝴蝶也能飛行。在多數人印象中,蝴蝶是專門吃花蜜的,其實不是這樣的哦。蝴蝶的種類豐富,不同種類的蝴蝶,愛吃的東西也不一樣。這個教程將向大家展示如何畫蝴蝶筆畫。在開始作畫之前讓我們看看下面這張完整的蝴蝶簡筆畫。
  • 看得懂的傅立葉變換
    打開APP 看得懂的傅立葉變換 李倩 發表於 2018-03-12 09:41:20 說起傅立葉變換,大部分科班出身的都上過課,
  • 如何畫樹木簡筆畫
    那麼如何用簡單的筆畫把樹木畫出來呢?按照下面這個簡單的樹木分步繪圖教程,來畫出自己的作品吧!樹木簡筆畫小朋友們,如果覺得自己畫出來的樹木作品很滿意的話,不妨讓你的爸爸媽媽把那作品裱起來。好了,現在讓我們一起來畫樹木吧。第一步:從第一棵樹的樹幹畫起。第二步:畫一條包圍的長曲線,形成第一棵樹的樹冠。
  • 如何畫火山簡筆畫
    那麼如何用簡單的筆畫把火山畫出來呢?按照下面這個簡單的火山分步繪圖教程,來畫出自己的作品吧!火山簡筆畫小朋友們,如果覺得自己畫出來的的作品很滿意的話,不妨讓你的爸爸媽媽把那作品裱起來。好了,現在讓我們一起來畫畫吧。
  • 我的世界實體303怎麼畫簡筆畫
    我的世界實體303畫簡筆畫教程:先畫出一個正方形,是303的臉。再向下畫一個長方形,作為303的軀幹。在長方形底部1/2出引出一個平行四邊形,向下再畫一個稍長一點的長方形,這是303的腿。畫出一個斜放的正方形,這就是303的上臂。最後用彩筆塗出眼睛,再將帽兜內部、手、鞋填充黑色。
  • Matlab傅立葉變換、餘弦變換和小波變換
    函數 ifft、ifft2 和 ifftn的調用格式於對應的離散傅立葉變換函數一致。別可以實現一維、二維和 N 維 DFT例子:圖像的二維傅立葉頻譜1.離散傅立葉變換的 Matlab實現(3) wavedec2 函數功能:二維信號的多層小波分解1.
  • 每天學一幅簡筆畫--煙花簡筆畫簡單又漂亮,綻放的煙花簡筆畫
    ,接著在中心點的周圍畫上一些散開的線條,並一點點讓線條變得密集,線條頂端畫上一些圓點裝飾,然後給煙花塗上紅色和黃色,漂亮的煙花簡筆畫就完成啦。  煙花簡筆畫教程    1、首先我們畫出一個不規則的中心,這個中心點的畫法大家可以隨意發揮,但是一定不要畫太大。
  • 漫談傅立葉變換——複數到底是個什麼東西?
    傅立葉變換要解決非周期信號的分析問題,想像這個非周期信號也是一個周期信號:只是周期為無窮大,各頻率分量無窮小而已(否則積分的結果就是無窮)。那麼我們看到傅立葉級數,每個分量常數的求解過程,積分的區間就是從T變成了正負無窮大。而由於每個頻率分量的常數無窮小,那麼讓每個分量都去除以f,就得到有值的數----所以周期函數的傅立葉變換對應一堆脈衝函數。
  • 荷花怎麼畫漂亮又簡單,夏日荷花簡筆畫圖片大全
    今天小編為大家整理了夏日荷花簡筆畫圖片大全,還有簡單易學的簡筆畫教程,一起來看下吧!荷花一直在我們的心中是正直、出淤泥而不染的形象,周敦頤曾在《愛蓮說》中寫道「予獨愛蓮之出淤泥而不染,濯清漣而不妖」,這短短幾句話把荷花的品性介紹的非常的詳盡,這樣美麗的荷花誰不愛呢?
  • 每天學一幅簡筆畫-十二生肖牛簡筆畫圖片大全
    奶牛簡筆畫彩色 可愛畫法奶牛簡筆畫彩色 可愛畫法QQ紅包牛簡筆畫畫法步驟教程步驟一:先畫上一個不規則的圓形,當做腦袋,上面還有兩隻尖尖的角。步驟二:頭的兩邊畫上兩隻大大的耳朵。步驟三:接著畫上大大的眼睛和圓圓的鼻孔,眼睛下面畫上一條橫線。
  • 荷花簡筆畫~一分鐘畫出最美王莽荷花
    荷花簡筆畫~一分鐘畫出最美王莽荷花 2018-07-26 17:24 來源:澎湃新聞·澎湃號·政務
  • 什麼是傅立葉變換?
    傅立葉變換學了有些年頭,可是一直沒有求甚解。如果有人問我,我只能寫出個數學變換的式子,高深莫測一番,生怕追問下去。這樣做,本質上就好像有人問「什麼是光」,答曰「從燈泡裡出來的東西」一樣,看似回答了,卻不得要領。因此,我寫下這篇短文,試圖通過圖像來理解傅立葉變換。首先要問,為什麼需要傅立葉變換?要回答這個問題,我們不妨用時間t 與頻率f 之間的變換做例子。
  • 傅立葉變換、頻域的簡明理解
    而傅立葉變換為我們打開了一扇門,一扇與真理相通的大門,透過傅立葉變換,就能理解這宇宙萬物背後的運行規律。一、傅立葉級數---周期函數的正交基分解:1、標準正交基。這個式子需要數學證明嗎?二、傅立葉變換---非周期函數的正交基分解:這個分成兩類,一個是連續函數的傅立葉變換,一個是離散函數的傅立葉變換連續傅立葉變換公式:
  • 每天學一幅簡筆畫--恐龍簡筆畫圖片大全
    步驟四:最後畫出屈著的腿和肚皮上的花紋。圓頂龍簡筆畫圖片大全劍龍簡筆畫圖片三角龍簡筆畫步驟圖解教程步驟一:畫出沱江龍外形。沱江龍簡筆畫圖片腕龍簡筆畫步驟圖解教程腕龍簡筆畫圖片似鱷龍簡筆畫步驟圖解教程
  • 每天學一幅簡筆畫--簡單又好看的雪花畫法,雪花怎麼畫簡筆畫
    ,形狀有點像枝丫,在角的上方畫上圓圈,順著環一個圓形,雪花就畫出來了,然後就可以塗色了,我們給雪花塗上藍色,簡單的雪花簡筆畫就完成啦!  雪花簡筆畫教程    1、首先在我們畫出雪花的角,先畫出三個,形狀有點像枝丫,在角的上方畫上圓圈。
  • 霸王龍簡筆畫怎麼畫 - 步驟圖文及視頻教程
    瀏覽器版本過低,暫不支持視頻播放以下是詳細的霸王龍簡筆畫繪畫分步說明注意兩條曲線的另一端不相遇,並在其上面畫出霸王龍的眼睛。第二步:在眼睛上方畫兩條短曲線,形成霸王龍的眉毛。在眉毛下方畫一個倒置的寬U形。在不規則形狀內畫兩個圈,並塗上陰影,形成鼻子。第三步:畫出霸王龍的下巴,並在上唇和下唇上各畫一系列寬U形,這將形成霸王龍的牙齒。
  • 哈利波特簡筆畫 - 卡通哈利波特人物簡筆畫教程
    這個教程將向大家展示如何畫哈利波特簡筆畫。在開始作畫之前讓我們看看下面這張完整的哈利波特簡筆畫。這哈利波特簡筆畫看起來有點難,但只要按照我們的教程步驟拆解開來一步一步畫,就會變得容易多了。那現在就跟著我一起繪製哈利波特的簡筆畫吧!