最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV-Python使用cv2實現(xiàn)傅里葉變換

 更新時間:2021年06月09日 14:11:54   作者:一天一篇Python庫  
在OpenCV中,我們通過cv2.dft()來實現(xiàn)傅里葉變換,使用cv2.idft()來實現(xiàn)逆傅里葉變換。本文就詳細的介紹一下這兩種用法,感興趣的可以了解一下

前言

在前一篇的博文中,我們詳細講解了傅里葉變換的原理以及使用Numpy庫實現(xiàn)傅里葉變換。但是其實OpenCV有直接實現(xiàn)傅里葉變換的函數(shù)。

在OpenCV中,我們通過cv2.dft()來實現(xiàn)傅里葉變換,使用cv2.idft()來實現(xiàn)逆傅里葉變換。兩個函數(shù)的定義如下:

cv2.dft(原始圖像,轉換標識)

這里的原始圖像必須是np.float32格式。所以,我們首先需要使用cv2.float32()函數(shù)將圖像轉換。而轉換標識的值通常為cv2.DFT_COMPLEX_OUTPUT,用來輸出一個復數(shù)陣列。

經(jīng)過cv2.dft()函數(shù)的變換后,我們會得到原始圖像的頻譜信息。此時零分量與Numpy庫實現(xiàn)一樣都不在中心位置。這里我們還是需要使用numpy.fft.fftshift()函數(shù)將其移動到中間位置。

需要特別注意的是,函數(shù)cv2.dft()返回值是雙通道的,第1個通道是結果的實數(shù)部分,第2個通道是結果的虛數(shù)部分。使用numpy.fft.fftshift()函數(shù)處理后,頻譜圖像還只是一個由實部和虛部構成的值,要顯示出來,要使用到另一個函數(shù)cv2.magnitude()。

該函數(shù)的定義如下:

cv2.magnitude(參數(shù)1,參數(shù)2)

參數(shù)1:浮點型x坐標值,也就是實部

參數(shù)2:浮點型y坐標值,也就是虛部,它必須和參數(shù)1具有相同的大?。╯ize)

得到頻譜圖像的幅度之后,還需要將幅度映射到灰度空間[0,255]內,使其以灰度圖像顯示出來。與前篇博文一樣,使用20*np.log(cv2.magnitude())。

實現(xiàn)傅里葉變換

下面,我們來通過上述OpenCV函數(shù)來實現(xiàn)傅里葉變換,并顯示其頻譜信息。

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("4.jpg", 0)

dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
dftShift = np.fft.fftshift(dft)
result = 20 * np.log(cv2.magnitude(dftShift[:, :, 0], dftShift[:, :, 1]))


plt.subplot(121)
plt.imshow(img, cmap="gray")
plt.axis('off')
plt.subplot(122)
plt.imshow(result, cmap="gray")
plt.axis('off')
plt.show()

運行之后,顯示效果與前篇博文一樣。

效果

實現(xiàn)逆傅里葉變換

還是與上篇博文一樣,這里我們過濾圖像的頻譜信息,這里我們過濾低頻信息。

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = cv2.imread("4.jpg", 0)

dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
dftShift = np.fft.fftshift(dft)
result = 20 * np.log(cv2.magnitude(dftShift[:, :, 0], dftShift[:, :, 1]))

rows,cols=img.shape
rows_half,cols_half=int(rows/2),int(cols/2)
mask=np.zeros((rows,cols,2),dtype=np.uint8)
mask[rows_half-30:rows_half+30,cols_half-30:cols_half+30]=1


#逆傅里葉變換
fShift=dftShift*mask
ishift=np.fft.ifftshift(fShift)
iimg=cv2.idft(ishift)
iimg=cv2.magnitude(iimg[:,:,0],iimg[:,:,1])


plt.subplot(121)
plt.imshow(img, cmap="gray")
plt.axis('off')
plt.subplot(122)
plt.imshow(iimg, cmap="gray")
plt.axis('off')
plt.show()

運行之后,效果如下:

低頻過濾

可以看到過濾低頻信息后,圖像的邊緣信息被消弱了。

到此這篇關于OpenCV-Python使用cv2實現(xiàn)傅里葉變換的文章就介紹到這了,更多相關OpenCV 傅里葉變換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python音頻處理的示例詳解

    python音頻處理的示例詳解

    這篇文章主要介紹了python音頻處理的示例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python中截取字符串幾種常用的方法

    Python中截取字符串幾種常用的方法

    在Python中截取字符串的方法非常簡單易懂,你只需要使用字符串的索引即可實現(xiàn),這篇文章主要給大家介紹了關于Python中截取字符串幾種常用的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05
  • pycharm重命名文件的方法步驟

    pycharm重命名文件的方法步驟

    在本篇文章中小編給大家分享的是關于pycharm重命名文件的方法步驟,對此有需要的朋友們可以學習參考下。
    2019-07-07
  • pytho傳參kwargs及用法詳解

    pytho傳參kwargs及用法詳解

    這篇文章主要介紹了pytho傳參kwargs及用法,函數(shù)傳參的時候簡化傳參形式,無需指定參數(shù)名,本文結合實例代碼講解的非常詳細,需要的朋友參考下吧
    2024-05-05
  • Python語言內置數(shù)據(jù)類型

    Python語言內置數(shù)據(jù)類型

    這篇文章主要介紹了Python語言中數(shù)據(jù)類型支持得運算符,Python語言提供了豐富的內置數(shù)據(jù)類型。用于有效的處理各種類型的數(shù)據(jù),下文將介紹到其數(shù)據(jù)類型支持的運算符等相關內容,需要的朋友可以參考一下
    2022-02-02
  • python中常見進制之間的轉換方式

    python中常見進制之間的轉換方式

    這篇文章主要介紹了python中常見進制之間的轉換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Pytorch?使用Google?Colab訓練神經(jīng)網(wǎng)絡深度學習

    Pytorch?使用Google?Colab訓練神經(jīng)網(wǎng)絡深度學習

    本文以VOC數(shù)據(jù)集為例,因此在訓練的時候沒有修改classes_path等,如果是訓練自己的數(shù)據(jù)集,各位一定要注意修改classes_path等其它參數(shù)
    2022-04-04
  • 基于Python實現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng)

    基于Python實現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng)

    數(shù)據(jù)分析與可視化是當今數(shù)據(jù)分析的發(fā)展方向,大數(shù)據(jù)時代,數(shù)據(jù)資源具有海量特征,數(shù)據(jù)分析和可視化主要通過Python數(shù)據(jù)分析來實現(xiàn),本文給大家介紹了如何基于Python實現(xiàn)的影視數(shù)據(jù)智能分析系統(tǒng),文中給出了部分詳細代碼,感興趣的朋友跟著小編一起來看看吧
    2024-01-01
  • python如何通過注冊表動態(tài)管理組件

    python如何通過注冊表動態(tài)管理組件

    使用注冊表的主要優(yōu)勢是可以在運行時動態(tài)創(chuàng)建對象,從而實現(xiàn)高度可配置和可擴展的設計,這篇文章主要介紹了python如何通過注冊表動態(tài)管理組件,需要的朋友可以參考下
    2024-05-05
  • python中torch.nn.identity()方法詳解

    python中torch.nn.identity()方法詳解

    今天看源碼時遇到的這個恒等函數(shù),就如同名字那樣占位符,并沒有實際操作,下面這篇文章主要給大家介紹了關于python中torch.nn.identity()方法的相關資料,需要的朋友可以參考下
    2022-03-03

最新評論

大竹县| 永寿县| 清水县| 无为县| 游戏| 临夏市| 宽甸| 郧西县| 湘潭县| 英吉沙县| 古交市| 顺平县| 镇宁| 繁昌县| 大关县| 茌平县| 呼图壁县| 山东省| 岳西县| 双峰县| 松原市| 上犹县| 阿尔山市| 博客| 绥德县| 天全县| 伊通| 双辽市| 美姑县| 通城县| 龙岩市| 雷波县| 潜江市| 白山市| 铜山县| 莲花县| 松桃| 宝兴县| 亳州市| 旺苍县| 通渭县|