Gonzalez R. C. and Woods R. E. Digital Image Processing (Forth Edition)
基本
酉变换
一维的变换:
t=Af,f=AHt,AH=A∗T,AHA=I.
以及二维的变换:
T=AFBT,F=AHTB∗,AHA=I,BTB∗=I.
以一维的为例, 实际上就是
tu=N−1∑x=0fxs(x,u)=fTsu,u=0,1,⋯,N−1,su=[s(0,u),s(1,u),⋯,s(N−1,u)]T.
故
A=[s0,⋯,sN−1]T.
注: 下面假设:N=2n.
s(x,u)=1√N(−1)∑n−1i=0bi(x)bi(u),
注意, 这里bi(u)表示u的二进制的第i位, 比如4的二进制为100, 此时b0=0,b2=1.
变换矩阵可以通过更通俗易懂的方式搭建:
AW=1√NHN,H2N=[HNHNHN−HN],H2=[111−1].
sequency-ordered WHT
H4=⎡⎢
⎢
⎢⎣11111−11−111−1−11−1−11⎤⎥
⎥
⎥⎦.
可以发现, 第1行(u=0,1,2,3)的符号变换最快的(类似与DFT中的频率的概念), 故sequency-order, 即按照符号变换快慢的递增排列, 其公式如下:
s(x,u)=1√N(−1)∑n−1i=0bi(x)pi(u),p0(u)=bn−1(u),pn−1−i(u)=bi(u)+bi+1(u),i=0,⋯,n−2.
记HW′为sequency-order的, 则 HW′的第u行与HW的第v行存在如下的关系:
- 考虑nbit的二进制, 则
u:(un−1un−2⋯u0),v:(vn−1vn−2⋯v0).
- 将u转换成其gray code格式
gi=ui⊕ui+1,i=0,⋯,n−2gn−1=sn−1.
其中⊕表示异或操作.
3. 对g进行bit-reverse, 即gi,gn−1−i调换位置, 则
vi=gn−1−i.
举个例子, 假设n=3, u=4=(100)2, 则g=(110)2, v=(011)2=3. 即H′8的第4行为H8的第3行(注意均从0开始计数).
proof:
pn−1−i(u)=bi(u)+bi+1(u)⇔bi(g)=bn−1−i(v).
注意⇔, 是这样的, bi+bi+1仅有(0, 1, 2)三种可能性, 而(−1)1=−1否则为1,而bi(g)=1恰好是bi(u)+bi+1(u)=1 (根据异或的定义可得), 故可能等价替换.
p0(u)=b0(v),
是显然的, 证毕.
下图便是按照sequency增序的表示.

ASI=1√NSN,SN=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣100100aNbN0−aNbN000I(N/2)−200I(N/2)−20100−10−bNaN0bNaN000I(N/2)−200−I(N/2)−2⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦[SN/200SN/2],S2=[111−1],aN=[3N24(N2−1)]1/2,bN=[N2−44(N2−1)]1/2.
标准正交性质是容易证明的, 需要特别注意的是, 改变换矩阵是非对称的, 所以逆变换是需要计算逆的A−1SI.

Haar 是一种小波变换, 这里简单写一下.
s(x,u)=1√Nhu(x/N),x=0,1,⋯,N−1,u=2p+q,hu(x)=⎧⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪⎩1u=0and0≤x<1,2p/2u>0andq/2p<(q+0.5)/2p,−2p/2u>0and(q+0.5)/2p<(q+1)/2p,0otherwise.

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix