拉普拉斯变换 频域,拉普拉斯频域微分性质

  拉普拉斯变换 频域,拉普拉斯频域微分性质

  频域中的音乐,定义:可以使用以下滤波器在频域中实现fkdtd算子:

  H ( u,v)=-42(U2 v2)h(u,v)=-4*\pi^2 (u^{2} v^{2}) H(u,v)=-42(U2 v2)

  或者,关于频率矩阵的中心,使用以下滤波器:

  H ( u,v)=-42((u-p2)2(v2)2)h(u,v)=-4*\pi^2((u-\frac{p}{2})^{2}(v-\frac{q}{2})^{2})h(u,v)=-42((u-2p)2(v2q)2)

  其中D(u,v)是上式给出的距离函数。然后,通过以下公式获得fkdtd图像:

   2 f ( x,y)=1h(u,v)f(u,v ) \bigtriangledown^{2} f(x,y)=\owns^{-1}{h(u,v)*f(u,v)} 2f(x,y)=1h(u,v)f(u,v)

  其中F(u,v)是f(x,y)的傅里叶变换。它可以通过使用以下公式来增强:

  g ( x,y )=f ( x,y ) c 2 f ( x,y ) g(x,y)=f(x,y) c\bigtriangledown^{2} f(x,y) g(x,y)=f(x,y) c2f(x,y)

  二。代码实现:原图:

  代码1:

  #!/usr/ygdhk/env python# -*-编码:utf-8 -*-@文件:频率域的fkdtd算子100 . py @说明:@时间:2021/05/14 20:31:55@作者:zt@版本:1.0 import cv2 import math import numpy as NP from matplotlib import py plot as PLT from matplotlib import rcParamsrcParams[ font。family ]= sim hei path=r 图片位置#读取图片,以灰度级的形式img=cv2.imread(路径,cv2 .im read _ gray)PLT。im show(img,cmap=gray ,interpolation=双三次)PLT。标题(原始图像)plt.xticks([]),plt.yticks([])plt.show()# #归一化到[0,1]# # img _ max=max(max(row)for row in img)# img _ GUI=img/img _ maxrows,cols=img。形状img _ k=NP。零((2 *行,2 *列))#用来制作傅里叶变换标定 img _ min=NP。min(img)FM=img-img _ minimg _ max=NP。max(FM)fs=(FM/img _ max)img _ k[:rows,cols]=fsprint(扩充后:)打印(img _ k . shape)打印(img _ k)PLT。im show(img _ k,cmap=gray ,interpolation=双三次)PLT。标题(扩充图像)plt.xticks([]),plt。y刻度([])PLT。show() (-1)(x y)乘以img_k移到其中心 # for I in range(img _ k . shape[0]):# for j in range(img _ k . shape[1]):# if(I j)% 2!=0:# img _ k[I][j]=(-1)* img _ k[I][j]crows,ccols=int(rows),int(cols) #得到频率域的中心点坐标打印(乌鸦,ccols)" "构建h(u,v),并求出来 h=np.zeros((2*rows,2 * cols))for I in range(rows):for j in range(cols):h[I][j]=1 ^ 4 * math。pow(数学。pi,2)*(math.pow(i-crows,2) math.pow(j-ccols,2))print(h(u,v):)print(h[crows,ccols])ff=np.fft.fft2(img_k) #图片扩充移其中心后的傅里叶变换fshift=np.fft.fftshift(ff) #将零频率分量移到频谱中心h _ f=NP。zeros _ like(h)for I in range(len(h)):for j in range(len(h[0]):h _ f[I,j]=h[i,j] * fshift[i,j]I shift=NP。FFT。IFFT变换(高频)# I变换是一个复数数组i_img=np.fft.ifft2(ishift) #逆傅里叶变换,得到仍然是一个复数数组i_img=np.abs(i_img) #取模,与取实部差不多plt.imshow(i_img,cmap=gray ,interpolation= bicubic )PLT。标题(“你变了”)计划。x刻度([]),PLT。y刻度([])PLT。show()c=1g=img c * I _ img[:rows,cols] #总计算公式plt.imshow(g,cmap=gray ,interpolation=bicubic) #绘图plt.title(频率域fkdtd处理后)plt.xticks([]),plt.yticks([])plt.show()效果:

  代码2:

  #!/usr/ygdhk/env python# -*-编码:utf-8 -*-@文件:频率域的fkdtd算子100 . py @说明:@时间:2021/05/14 21:31:50@作者:zt@版本:1.0 import cv2 import math import numpy as NP from matplotlib import py plot as PLT from matplotlib import rcParamsrcParams[ font。family ]= sim hei path=r 图片位置#读取图片,以灰度级的形式img=cv2.imread(路径,cv2 . IMREAD _ gray) 值域[0,1] img _ min=NP。min(img)FM=img-img _ minimg _ max=NP。max(FM)fs=(FM/img _ max)rows,cols=img。形状img _ k=NP。零((2 *行,2 *列))#用来制作傅里叶变换img_k[:rows,cols]=fsff=NP。FFT。FFT T2(img _ k)#傅里叶变换fshift=np.fft.fftshift(ff) #将零频率分量移到频谱中心m,n=fshift.shapeo_x,o_y=int(m/2),int(n/2)a _ max=NP。max(f shift)img _ zero=NP。零((m,n)) #滤波后的频谱对于范围内的我(男):对于范围内的j(n):h=(-4)*数学。pow(数学。pi,2)*(math.pow(i-o_x,2) math.pow(j-o_y,2))/a_max #fkdtd滤波器,除以img_f的最大值最大值是为了将H(i,j)标定到[-1,1]的范围内img_zero[i,j]=(1-h)*fshift[i,j]为s hift=NP。FFT。IFFT移位(img _ zero)#是shift是一个复数数组i_img=np.fft.ifft2(ishift) #逆傅里叶变换,得到仍然是一个复数数组,不要以为直接得到图像的像素值I _ img=NP。ABS(I _ img)工厂。im show(I _ img[:rows,cols],cmap=gray ,interpolation= bicubic )PLT。标题(频率域fkdtd处理后)plt.xticks([]),plt.yticks([])plt.show()效果:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: