理想高通濾波實現Python opencv示例
更新時間:2019年01月30日 09:40:28 作者:qq_34725005
今天小編就為大家分享一篇關于理想高通濾波實現Python opencv示例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
理想高通濾波實現 python opencv
import numpy as np import cv2 from matplotlib import pyplot as plt plt.rcParams[‘font.sans-serif']=[‘SimHei'] plt.rcParams[‘axes.unicode_minus'] = False I = cv2.imread(‘capture3.png') cv2.imshow(‘original',I) (r,g,b) = cv2.split(I) I = cv2.merge([b,g,r]) J = np.double(cv2.cvtColor(I,cv2.COLOR_RGB2GRAY)) D1 = 30 D2 = 60 D3 = 160 Fuv = np.fft.fftshift(np.fft.fft2(J)) print(‘Fuv',Fuv) print(I.shape) m,n = I.shape[0],I.shape[1] xo = np.floor(m/2) yo = np.floor(n/2) h1 = np.zeros((m,n)) h2 = np.zeros((m,n)) h3 = np.zeros((m,n)) for i in range(m): for j in range(n): D = np.sqrt((i-xo)**2+(j-yo)**2) if D>=D1: h1[i,j]=1 else: h1[i,j]=0 if D>=D2: h2[i,j]=1 else: h2[i,j]=0 if D>=D3: h3[i,j]=1 else: h3[i,j]=0 Guv1 = h1*Fuv Guv2 = h2*Fuv Guv3 = h3*Fuv g1 = np.fft.ifftshift(Guv1) g1 = np.uint8(np.real(np.fft.ifft2(g1))) print(‘g1',g1) g2 = np.fft.ifftshift(Guv2) g2 = np.uint8(np.real(np.fft.ifft2(g2))) print(‘g2',g2) g3 = np.fft.ifftshift(Guv3) g3 = np.uint8(np.real(np.fft.ifft2(g3))) print(‘g3',g3) plt.subplot(2,2,1),plt.imshow(I),plt.title(‘原圖像') plt.subplot(2,2,2),plt.imshow(g1),plt.title(‘D0=30') plt.subplot(2,2,3),plt.imshow(g2),plt.title(‘D0=60') plt.subplot(2,2,4),plt.imshow(g3),plt.title(‘D0=160') plt.show()
效果:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
Python3.4學習筆記之類型判斷,異常處理,終止程序操作小結
這篇文章主要介紹了Python3.4學習筆記之類型判斷,異常處理,終止程序操作,結合具體實例形式分析了Python3.4模塊導入、異常處理、退出程序等相關操作技巧與注意事項,需要的朋友可以參考下2019-03-03在Ubuntu系統(tǒng)下安裝使用Python的GUI工具wxPython
這篇文章主要介紹了在Ubuntu系統(tǒng)下安裝使用Python的GUI工具wxPython的方法,wxPython可以為Python提供強大的圖形化界面開發(fā)支持,需要的朋友可以參考下2016-02-02python GUI庫圖形界面開發(fā)之PyQt5多行文本框控件QTextEdit詳細使用方法實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5多行文本框控件QTextEdit詳細使用方法實例,需要的朋友可以參考下2020-02-02