<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          獨家|OpenCV 1.7 離散傅里葉變換

          共 3058字,需瀏覽 7分鐘

           ·

          2021-08-14 04:41

          翻譯:陳之炎

          校對:李海明


          本文約2400字,建議閱讀5分鐘

          本文為大家介紹了OpenCV離散傅里葉變換。


          目標(biāo)


          本小節(jié)將尋求以下問題的答案:

          • 什么是傅立葉變換,為什么要使用傅立葉變換?

          • 如何在OpenCV中使用傅立葉變換?

          •  copyMakeBorder() , merge() , dft() , getOptimalDFTSize() , log() 和 normalize() 等函數(shù)的使用方法。


          源代碼


          可以到

          samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp目錄下查看OpenCV的源代碼庫。


          下面是dft()的應(yīng)用示例程序:
           


          代碼詳解


          傅立葉變換可以將圖像分解成正弦和余弦分量。也就是說,它將圖像從空間域變換到頻率域。其主要思想為:任何函數(shù)均可以用無限多個正弦和余弦函數(shù)之和來精確近似。傅立葉變換正是這一想法的實現(xiàn)。數(shù)學(xué)上,一張二維圖像的傅里葉變換可表示如下:


          這里,f是圖像在空間域的圖像值, F是圖像在頻率域的圖像值,轉(zhuǎn)換后的結(jié)果為復(fù)數(shù),可以通過并且可以用實數(shù)圖和復(fù)數(shù)圖進行表示,也可以用幅度和相位圖進行表示。然而,對于圖像處理算法而言算法僅關(guān)注圖像的幅度信息,因為其中包含了圖像幾何結(jié)構(gòu)中的所有信息。如果想通過對復(fù)數(shù)圖像或幅度/相位圖像下的象函數(shù)進行修改,從而間接地調(diào)整原函數(shù), 那么則需要保留象函數(shù)的值,并進行傅里葉變換逆變換,從而獲得調(diào)整后的原函數(shù)的數(shù)值。


          在此示例中,將介紹如何計算和顯示圖像經(jīng)過傅里葉變換的幅度圖值。假設(shè)數(shù)字圖像的傅里葉變換是離散的傅里葉變換,可以在給定的域值中任取一個數(shù)值。例如,灰度圖像的像素值通常在0到255之間,那么傅立葉變換的結(jié)果也是離散型的。當(dāng)需要從幾何視角來確定圖像的結(jié)構(gòu)時,便可適用DFT。下面是離散型的傅里葉變換(DFT )的實現(xiàn)步驟(假設(shè)輸入圖像為灰度圖像I):

          將圖像展開到最佳尺寸


          DFT的性能取決于圖像的大小,當(dāng)圖像的尺寸為2,3,5 的倍數(shù)時,離散傅里葉變換(DFT )的速度最快。因此,為獲得最優(yōu)的性能,可以通過調(diào)整圖像的邊界值來獲得便于快速計算的圖像尺寸。getOptimalDFTSize()函數(shù)返回一個最優(yōu)尺寸的圖像,使用copyMakeBorder()函數(shù)擴展圖像(將增加的像素值初始化為零)的邊界:

           


          為復(fù)數(shù)的實部和虛部開辟存儲空間


          傅立葉變換的結(jié)果是復(fù)數(shù),這意味著,每個圖像對應(yīng)著兩個像素值(實部和虛部各一個分量)。此外,頻率域范圍比其對應(yīng)的空間域范圍要大得多,所以至少要用浮點(float format)的格式來存儲傅里葉變換的結(jié)果。為此,需要將輸入的圖像數(shù)據(jù)類型轉(zhuǎn)換成浮點類型,并擴展出另一個通道來保存復(fù)數(shù)值:


          離散傅立葉變換


          進行原位計算(輸入數(shù)據(jù)同輸出數(shù)據(jù)):


           

          將復(fù)數(shù)的實部和虛部轉(zhuǎn)換成幅度值


          復(fù)數(shù)包含實部(Re)和虛部( Im) 兩部分。DFT的結(jié)果為復(fù)數(shù),這個復(fù)數(shù)的幅度為:
           


          轉(zhuǎn)換成OpenCV的代碼如下:
           


          切換到對數(shù)尺寸


          由于傅里葉系數(shù)的動態(tài)范圍過大,無法在屏幕上顯示,

          一些較小和較大的變化值也無法在線性尺度下觀察到。因此,較高的數(shù)值會變成白點,而較小的數(shù)值變?yōu)楹邳c。為了便于顯示全部數(shù)值,可使用灰度值,并將線性尺寸變換成對數(shù)尺寸:


           
          轉(zhuǎn)換成OpenCV代碼如下:

           

          剪裁和重排


          在上述第一步中,對圖像的尺寸進行了擴展,在這里則需要拋棄由圖像擴展而新引進的像素值。為了方便可視化,對結(jié)果值的象限重新排列,使得原點(零,零)對應(yīng)圖像中心。
           


          歸一化


          歸一化的目的也是為了便于可視化。經(jīng)過運算之后,獲得了幅度值,但這些數(shù)值仍然超出了圖像的顯示范圍(從零到一),為此,利用cv::normalize()函數(shù)對幅度值進行歸一化,取值在零到一的范圍之內(nèi)。


          結(jié)果


          應(yīng)用傅里葉變換的主要目的是要確定圖像的幾何方向。例如,如何看出文本是水平還是垂直方向的?對于某些文字來說,文本行的排序形式是水平線,而字母則形成某種垂直線。經(jīng)傅里葉變換后,仍然可以看到文本中片段中的兩個主要部分。下面,分別用水平和旋轉(zhuǎn)圖像來描述某一文本。

          水平文本圖像:
           


          旋轉(zhuǎn)文本圖像:
           


          從中可以看出,頻域中影響最大的分量(幅度圖像上最亮的點)會隨著圖像的幾何位置旋轉(zhuǎn),可以根據(jù)這一點計算出偏移量,通過旋轉(zhuǎn)圖像來對位置進行糾正。
           
          注:本文以C++語言代碼為例,獲取Java和python版本可在原文中查看:

          https://docs.opencv.org/4.5.2/d8/d01/tutorial_discrete_fourier_transform.html

           
          編輯:于騰凱
          校對:楊學(xué)俊


          下一小節(jié):1.8 使用XML和YAML文件實現(xiàn)文件的輸入/輸出
           
          往期回顧:
          獨家|OpenCV?1.1 Mat?- 基本圖像容器(附鏈接)

          獨家|OpenCV 1.2 如何用OpenCV掃描圖像、查找表和測量時間(附鏈接)

          獨家|OpenCV?1.3 矩陣的掩膜操作(附鏈接)

          獨家|OpenCV 1.4 對圖像的操作

          獨家|OpenCV 1.5 利用OpenCV疊加(混合)兩幅圖像
          獨家|OpenCV 1.6 改變圖像的對比度和亮度!




          譯者簡介





          陳之炎,北京交通大學(xué)通信與控制工程專業(yè)畢業(yè),獲得工學(xué)碩士學(xué)位,歷任長城計算機軟件與系統(tǒng)公司工程師,大唐微電子公司工程師,現(xiàn)任北京吾譯超群科技有限公司技術(shù)支持。目前從事智能化翻譯教學(xué)系統(tǒng)的運營和維護,在人工智能深度學(xué)習(xí)和自然語言處理(NLP)方面積累有一定的經(jīng)驗。業(yè)余時間喜愛翻譯創(chuàng)作,翻譯作品主要有:IEC-ISO 7816、伊拉克石油工程項目、新財稅主義宣言等等,其中中譯英作品“新財稅主義宣言”在GLOBAL TIMES正式發(fā)表。能夠利用業(yè)余時間加入到THU 數(shù)據(jù)派平臺的翻譯志愿者小組,希望能和大家一起交流分享,共同進步

          翻譯組招募信息

          工作內(nèi)容:需要一顆細致的心,將選取好的外文文章翻譯成流暢的中文。如果你是數(shù)據(jù)科學(xué)/統(tǒng)計學(xué)/計算機類的留學(xué)生,或在海外從事相關(guān)工作,或?qū)ψ约和庹Z水平有信心的朋友歡迎加入翻譯小組。

          你能得到:定期的翻譯培訓(xùn)提高志愿者的翻譯水平,提高對于數(shù)據(jù)科學(xué)前沿的認知,海外的朋友可以和國內(nèi)技術(shù)應(yīng)用發(fā)展保持聯(lián)系,THU數(shù)據(jù)派產(chǎn)學(xué)研的背景為志愿者帶來好的發(fā)展機遇。

          其他福利:來自于名企的數(shù)據(jù)科學(xué)工作者,北大清華以及海外等名校學(xué)生他們都將成為你在翻譯小組的伙伴。


          點擊文末“閱讀原文”加入數(shù)據(jù)派團隊~



          轉(zhuǎn)載須知

          如需轉(zhuǎn)載,請在開篇顯著位置注明作者和出處(轉(zhuǎn)自:數(shù)據(jù)派ID:DatapiTHU),并在文章結(jié)尾放置數(shù)據(jù)派醒目二維碼。有原創(chuàng)標(biāo)識文章,請發(fā)送【文章名稱-待授權(quán)公眾號名稱及ID】至聯(lián)系郵箱,申請白名單授權(quán)并按要求編輯。

          發(fā)布后請將鏈接反饋至聯(lián)系郵箱(見下方)。未經(jīng)許可的轉(zhuǎn)載以及改編者,我們將依法追究其法律責(zé)任。



          點擊“閱讀原文”擁抱組織


          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女内射视频 | 国产欧美一区二区三区四区 | 国产日皮网站在线观看 | 爱爱高清无码 | 影音先锋成人片 |