高通滤波器(一次失败的尝试)

文章探讨了高通滤波器如何设置图像背景为0,解释了低通滤波器的原理以及频率与空间域变化率的关系。作者质疑传统的理解,提出变化率可能与频域特定值相关,但未给出确切的数学证明。最后,虽然没有得出明确结论,但提出了一个看似神奇的公式,展示了不同点之间的潜在联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么所有的高通滤波器会把图像的背景色设置为0?

首先根据公式4.9-1,低通滤波器的定义,超过某个频率是百分之百通过的,为1.所以这里的含义是低于某个频率就会百分之百为0,完全不通过,那么可以肯定在H(0,0)=0。

根据导数的定义,观察f'(0)=0。尽管n取0可以影响,但是图像可以中心化,意味着频率可以移动,但是在空间域的图像变化率呢?根据书上的公式4.6.3, 因为变化率取绝对值就跟e^(ia)无关(复变函数需要抛弃复数形式,求变化率),那么只能是an=0,bn=0,对于任意的n是实数成立。这就是说空间滤波器对于没有像素变化的位置x,有f(x)=0。高通滤波器能把白色都变成黑色啊。

也就是说只要频域滤波器的值有H(x)=0,那么就是该变化率的位置的像素值只能为0了。

应该是错了。如果an=bn=0,那么f(x)=0,这没有意义了。那么变化率不只是频率,该如何理解呢?

首先f'(x)= \sum_{k=-\infty }^{\infty}Ck*ikw*e^(ikwx)。只能说x=0的变化率f'(0)= \sum_{k=-\infty }^{\infty}Ck*kwi,首先这是个收敛的级数,然后是点列{Ck*w*k}存在最大值和下确界为0,但是k是递增的,所以lim(k-> \infty)=Ck*w/k=0。当x1不等于x2,那么必然是复数作为向量加法而不是幅度直接相加。但是这什么都说明不了。已知大部分Ck是k的高阶无穷小,Ck=1/kk+O(k)。累加实在是不方便,既然是向量加法那么就是f'(x)=A(k1,,...km,..,x)*e^(iB(k1,,...km,..,x)),A(k1,,...km,..,x)是可列个向量相加之后的模,如果存在积分中值定理类似的概念,那么就可以让这个模正比于Ck中的某个值Ckm,相位不用管,那么就可以说明变化率确实跟某个频域的某个值有关。我觉得这个可以证明,但是我给不出来,因为尽管是在正无穷和负无穷积分,但是,无限个降速太快,非常小的量忽略,有限个相加,取某种意义的均值,因为考虑到连续性,肯定能取到。我的这个想法虽好,但是只是想法,没有数学公式只能算是猜测。我认为f'(x)=Ckm*e^(iklx), 相位角同理,但是连续方式不同就设为kl,但是因为f(x)是实数,其实是kl=0。即是f'(x)=Ckm(ck,x),Ckm取值为f(km)。
然后理解f'(0)= \sum_{k=-\infty }^{\infty}Ck*kwi=0。只能是 \sum_{k=-\infty }^{\infty}Ck*k=0=Ckm,所以当空间域的像素变化率为0的时候,在频率域上存在频率u,是的F(u)=0。

其实对f的任意阶导数,都是这个结果。f^m(x)=F(km(x)), km跟阶数m和x有关,km取值为F(w)的定义域,而且km是关于x的光滑函数。(这些都是猜测。)

反过来也是如此。F^m(w)=f(xm(w)),xm跟阶数m和w有关,xm取值为f(x)的定义域。

那么我得出的结论为是: 像素变化率确实就是频域中的某个值,但是问题是改变频域上的值,真的能改变像素的变化率吗?说实话,像素变化率不是关于频率的函数,而只是说像素变化率的值域受到频率域的值的影响,反过来也是如此。按照积分中值定理设想,有界区间的曲线的中值连续移动到0,也不可能让之后的积分的中值为0,但是肯定有影响。仅仅只是把某个频率w的值F(w)设置为0也能做到让某个位置的像素为0,根据f^m(x)=F(km(x))。但是更具体的怎么知道呢?我做不到。我失败了,本想解决低频对应低变化率的,没有做出来。

尽管有fm=F(Km), Fm=f(xm),得出f1=F(K1)=f(x0)(K1)。

所以感觉作者的说法是错误的。频率跟变化率没有关系,因为我找不到。总结就是没有任何发现,应该是对这些东西认识不够,我也没功夫搞这些。前面写的几篇都是错的。但是错误也有价值,先留着吧。

既然连续函数的道路走不通,那我走离散的道路,最后再挣扎一下。

         

    

先计算点列的一阶导数

f'(n)=f(n+1)-f(n)=1/N*(\sum_{k=0}^{N-1}Fk*e^{i*2\pi *(n+1)*k/N}\sum_{k=0}^{N-1}Fk*e^{i*2\pi *n*k/N})

=1/N*\sum_{k=0}^{N-1}Fk*2cos(\pi*k/N-\pi/2)*e^{i*2\pi *n*k/N+i*\pi/2}

=1/N*\sum_{k=0}^{N-1}Fk*2sin(\pi*k/N)*e^{i*2\pi *n*k/N+i*\pi/2}

=1/N*\sum_{k=0}^{N-1}Fk*2sin(\pi*k/N)*i*e^{i*2\pi *n*k/N}

=2i/N*\sum_{k=0}^{N-1}sin(\pi*k/N)*Fk*e^{i*2\pi *n*k/N}

 如何理解2i/N*\sum_{k=0}^{N-1}sin(\pi*k/N)*Fk*e^{i*2\pi *n*k/N}呢?其实就是在复平面上的N个向量相加,问题是Fk也不是实数。问题就搞复杂了, 那就先看Fk是实函数,因为我发现书上的频率域滤波器是实函数。n是空间域位置,k是频率域频率。搞错了,不应该对滤波器求导,所以f(n)应该理解为图像,实函数,那么Fk就无法控制是不是复函数了。频域滤波器的作用是修改Fk的值,如何修改才能是的f'(n)变小?首先这里有个虚数符号,但是指数函数也是复数,Fk也很可能是复数,最后会消失奇怪。完全看不出来如何改,换个方式理解。

反变换看完了,那就看正变换。

F(k)=\sum_{n=0}^{N-1}f(n)*e^{-i*2\pi *n*k/N},这是什么意思呢?总共有N个向量相加,f(n)是向量的模,e^{-i*2\pi *n*k/N}是向量的方向,方向为顺时针转动,与其说是向量,不如说是加法群。

k=0的时候,是1元群。

k=1的时候,是N元群。

k=2的时候,最大公约数=(N,k),则是N/(N,k)元群,重复了(N,k)次。如果默认任何数是零的约数,那么(N,0)=N。

。。。。。。。。

k=N-1的时候,是N元群。

k=N的时候,是1元群。

这里k是频率,不过是离散值。设点列{f(km)}是按从大到小顺序排列的。

这也没什么用。

设空间域滤波器为h(m),有频率域滤波器为H(k)=\sum_{m=0}^{N-1}h(m)*e^{-i*2\pi *m*k/N}

则有

卷积定理:

f(l)\bigotimesh(l)=\sum_{m=0}^{N-1}f(m)h(l-m)=\sum_{m=0}^{N-1}\sum_{x=0}^{N-1}(1/N)*F(x)*e^{i*2\pi *m*x/N}*\sum_{y=0}^{N-1}(1/N)*H(y)*e^{i*2\pi *(l-m)*y/N}

=\sum_{x=0}^{N-1}(1/N)*F(x)*(1/N)*H(x)*e^{i*2\pi *l*x/N}

这是为什么相等呢?因为

\sum_{x=0}^{N-1}(1/N)*F(x)*(1/N)*H(x)*e^{i*2\pi *l*x/N}

=\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}\sum_{m=0}^{N-1}(1/N^2)*F(x)*H(y)*e^{i*2\pi *m*x/N}*e^{i*2\pi *(l-m)*y/N}

考虑e^{i*2\pi *m*x/N}*e^{i*2\pi *(l-m)*y/N}

mx+ly-my=m(x-y)+ly。

当x=y的时候,\sum_{m=0}^{N-1}e^{i*2\pi *m*(x-y)/N}=N,当x\neqy,\sum_{m=0}^{N-1}e^{i*2\pi *m*(x-y)/N}=0,这是根据上面贴出来的正交性。

所以原式=\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}(1/N^2)*F(x)*H(y)*N*e^{i*2\pi *l*y/N}

=\sum_{y=0}^{N-1}N*(1/N^2)*F(x)*H(y)*N*e^{i*2\pi *l*y/N}

=\sum_{y=0}^{N-1}F(x)*H(y)*e^{i*2\pi *l*y/N}

现在继续看f'(n)=2i/N*\sum_{k=0}^{N-1}sin(\pi*k/N)*Fk*e^{i*2\pi *n*k/N}

=2i/N*\sum_{k=0}^{N-1}sin(\pi*k/N)*\sum_{x=0}^{N-1}f(x)*e^{-i*2\pi *k*x/N}*e^{i*2\pi *n*k/N}

=2i/N*\sum_{k=0}^{N-1}\sum_{x=0}^{N-1}f(x)*sin(\pi*k/N)*e^{i*2\pi *k*(n-x)/N}

经过计算发现三角函数不方便计算,还是转化为指数形式。

=1/N*\sum_{k=0}^{N-1}\sum_{x=0}^{N-1}f(x)*(e^{i*\pi*k/N}-e^{-i*\pi*k/N})*e^{i*2\pi *k*(n-x)/N}

=1/N*\sum_{k=0}^{N-1}\sum_{x=0}^{N-1}f(x)*(e^{i*\pi*k/N}-e^{-i*\pi*k/N})*e^{i*2\pi *k*(n-x)/N}

G=e^{i*2\pi /N},则当x\neq n时候,

1/N*\sum_{k=0}^{N-1}f(x)*[G^{ k/2+k*(n-x)}-G^{-k/2+k*(n-x)}]

=1/N*f(x)*([1-G^{ (1/2+n-x)N}]/[1-G^{ 1/2+n-x}]-[1-G^{ (-1/2+n-x)N}]/[1-G^{ -1/2+n-x}] )

=1/N*f(x)*([1-e^{i\pi}]/[1-G^{ 1/2+n-x}]-[1-e^{-i\pi}]/[1-G^{ -1/2+n-x}] )

=1/N*f(x)*(2/[1-G^{ 1/2+n-x}]-2/[1-G^{ -1/2+n-x}] )

总共有n-1个x不等于n, 

x=n的时候,

1/N*\sum_{k=0}^{N-1}f(x)*[G^{ k/2+k*(n-x)}-G^{-k/2+k*(n-x)}]

=1/N*\sum_{k=0}^{N-1}f(x)*[G^{ k/2}-G^{-k/2}]

=1/N*f(x)*[(1-G^{1/2*N})/(1-G^{1/2})-(1-G^{-1/2*N})/(1-G^{-1/2})]

=1/N*f(x)*[2/(1-G^{1/2})-2/(1-G^{-1/2})]

所以

f'(n)=1/N*f(n)*[2/(1-G^{1/2})-2/(1-G^{-1/2})]+\sum_{x=0}^{N-1}(1-\delta xn)*1/N*f(x)*(2/[1-G^{ 1/2+n-x}]-2/[1-G^{ -1/2+n-x}] )

再进行傅里叶变换试试。

f'(n)=1/N*\sum_{k=0}^{N-1}Fk*e^{i*2\pi *n*k/N}*[2/(1-G^{1/2})-2/(1-G^{-1/2})]+

\sum_{x=0}^{N-1}(1-\delta xn)*1/N*\sum_{k=0}^{N-1}Fk*e^{i*2\pi *x*k/N}*(2/[1-G^{ 1/2+n-x}]-2/[1-G^{ -1/2+n-x}] )

已经无法继续写下去了。

其实这个结果是很奇怪的,因为f'(n)=f(n+1)-f(n),上面的结果能算出来下面的等式吗?

f(n+1)-f(n)=1/N*f(n)*[2/(1-G^{1/2})-2/(1-G^{-1/2})]

+\sum_{x=0}^{N-1}(1-\delta xn)*1/N*f(x)*(2/[1-G^{ 1/2+n-x}]-2/[1-G^{ -1/2+n-x}] )G=e^{i*2\pi /N}。因为这个等式的N和f都是任意的啊,这也能成立?不知道是哪里算错了,明天检验一下,不知不觉就发明了一个公式了。(已经检查了,我没发现任何问题,我居然创造了一个公式。如果真的没问题,那这是非常神奇的公式,任意毫不相关的点居然可用一个如此简单的联系起来,我都不敢相信。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值