对camera raw中的纹理和清晰度的内容的第三次修正(我解决了图像处理的半环的出现,甚至给出了放大镜效果的解释,甚至提出人眼成像的处理公式是二阶导数,但我只是基于逻辑推导的,没有公式)

我重新复盘了傅里叶计算公式。我还以为之前的傅里叶公式写错了,发现是我记错了。频率域中的高频对应大相位角,而不是低频,我这几天一直在讨论低频,难怪问题搞反了。

我在fft算法一篇文章中写的完全是对的,后面的内容就是半对半错了。

我重新用我习惯的符号写一下。

fj=\sum_{i=0}^{M-1}s(j-,i)*ai*e^{\sum_{x=1}^{M}2\pi*i/2^{x}*i_{x}},i=i1i2...iM,j-=j的逆序数,函数s()表示j-与i相与之后统计1的个数,为0是正号,为1是负号。x是i的二进制位下标,i的最高位记为第一位。

我前面搞错的地方是i我记成iM...i2i1了,但是其实应该是i1i2...iM。

所以我只是搞错了相位角的问题。

然后是前一篇的计算公式,我也需要验证是否当ai相等的时候,那个公式的合理性。

假设一维图像序列为4个点。

这里我设e(x)=e^{2\pi*i*x},ai=1。

若j=10, 

f10=s(10-,00)*e(2^(-1)*0+2^(-2)*0)   +   s(10-,01)*e(2^(-1)*0+2^(-2)*1)
+s(10-,10)*e(2^(-1)*1+2^(-2)*0)   +   s(10-,11)*e(2^(-1)*1+2^(-2)*1)

= s(01,00)*e(2^(-1)*0+2^(-2)*0)   +   s(01,01)*e(2^(-1)*0+2^(-2)*1)
+s(01,10)*e(2^(-1)*1+2^(-2)*0)   +   s(01,11)*e(2^(-1)*1+2^(-2)*1)

= e(2^(-1)*0+2^(-2)*0)   -   e(2^(-1)*0+2^(-2)*1)
+e(2^(-1)*1+2^(-2)*0)   -   e(2^(-1)*1+2^(-2)*1)

=e(1+1)+e(1+1/2)-e(1/2+1/4) -  e(2^(-1)*0+2^(-2)*1)=0。

居然都抵消了。我不敢相信会这样,换一个试试。

重写以下形式,简化。

设e(i1,i2)=e^(累加2^(-x)*ix)。

fj=\sum_{i=0}^{M-1}s(j-,i)*e(i1,i2)。

假如j=01, 则

f01=s(10,00)*e(0,0)

+s(10,01)*e(0,1)

+s(10,10)*e(1,0)

+s(10,11)*e(1,1)

=e(0)+e(1/4)+e(1/2+1/2)+e(1/2+1/2+1/4)=2e(0)+2e(1/4),这里的e(x)=e^{2\pi*i*x}

假如j=00, 则

f00=s(00,00)*e(0,0)

+s(00,01)*e(0,1)

+s(00,10)*e(1,0)

+s(00,11)*e(1,1)

=e(0)+e(1/4)+e(1/2)+e(1/2+1/4)=0,这里的e(x)=e^{2\pi*i*x}

假如j=11, 则

f11=s(11,00)*e(0,0)

+s(11,01)*e(0,1)

+s(11,10)*e(1,0)

+s(11,11)*e(1,1)

=e(0)+e(1/2+1/4)+e(1/2+1/2)+e(1/2+1/4)=2e(0)+2e(1/2+1/4),这里的e(x)=e^{2\pi*i*x},e(z)=e(0),z是整数。

总结为

f00=0, f01=2e(0)+2e(1/4),

f10=0, f11=2e(0)+2e(1/2+1/4)。

这完全看不出来什么

首先知道的是i的二进制位从高到低,得到的相位角越来越小,所以修改哪个ai的值,对fj影响最大呢?肯定是i的最高位为1时候的ai,因为尽管fj是实数,看起来是和实轴夹角最小的相位角修改影响最大,但是要注意ai是复数,自带相位角。对ai的调整,不改相位,只改模的大小,最终能得到实数吗?不确定,能确定地是等比例改变的,是等比例得到实像素值的。

我不清楚是M个相位角谁最有影响,但是肯定是存在的。可以确定地是,由于角度是等比数列,如果第n个相位角影响最大的时候,那么依次的,第n+1个是第二个影响最大的,直到i的二进制位的最后一位是最大影响的。接着是第n-1位是最大影响的,接着是第1位。这里i=i1i2i3....iM。

但是这样看似合理,其实也不是,因为负号是旋转180度,所以接近负的相位也是影响最大的。

那么再改一下就是如果第n个相位角影响最大的时候,那么依次的,第n+1个是第二个影响最大的,接着是第n-1位是次最大影响的,接着是第n+2位,第n-2位。这里i=i1i2i3....iM。这里相位角的下标从最小0和最大M排列成环,即是最小和最大相邻。

我不太相信这个规律.所以我晚上做了一些纯数学上的推导,再次修改了傅里叶变换公式的形式,因为这个形式不好用,感觉没有写出来的必要,因为不知道会不会有用。

那我继续考虑二进制的计算方式

首先需要重新整理一下内容。

已知傅里叶反变换的公式为fj=1/M*∑{i=0;n-1}s(j-,i)*ai*e^(i1,i2,...,iM),这里e^(i1,i2,...,iM)=e^({∑ k=1;M}2π*(ik/2^k))。M=logN。s(j-,i)表示j-与i相与,统计1的个数为奇数个为负,为偶数个为正。j-表示j的逆序。

傅里叶变换为ai=∑{i=0;n-1}s(i-,j)*fj*e~^(j1,j2,...,jM),这里e~^(j1,j2,...,jM)=e^({∑k=1;M}-2π*(jk/2^k))。s(i-,j)表示i-与j相与,统计1的个数为奇数个为负,为偶数个为正。

复数ai的范围是什么呢?0=<fj=<255。为了简化,设为0=<fj=<1。

由于ai有n个点fj决定,而fj有256个值,所以ai最多有256^n中可能。这在复平面中也是非常多的了。为了更好的观察,再改一下公式为

ai=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值