当前位置: 首页 > news >正文

图像处理-Ch7-小波函数

个人博客!无广告观看,因为这节内容太多了,有点放不下,分了三节

文章目录

    • 多分辨率展开(Multi-resolution Expansions)
      • 序列展开(Series Expansions)
      • 尺度函数(Scaling Function)
        • 例:哈尔尺度函数(Haar scaling func)
        • 多分辨率分析的四项基本要求
      • 小波函数(Wavelet Function)
        • 尺度和小波子空间之间的关系
        • Haar小波函数
    • 一维小波变换(Wavelet Transforms in One Dimension)

多分辨率展开(Multi-resolution Expansions)

前面介绍了三种图像处理技术:图像金字塔、子带编码、哈尔变换。这在多分辨率分析(Multi-resolution Analysis, MRA)中会用到。

在多分辨率分析中,尺度函数被用于建立某一函数或是图像的一系列近似值,小波函数对相邻近似值之间的差异进行编码。

Q: 尺度函数、小波函数?

A: 尺度函数类似于低通滤波器的作用、小波函数描述高通滤波器的作用。

序列展开(Series Expansions)

一个信号或函数 f ( x ) f(x) f(x)通常被分解为一系列展开函数的线性组合,即:
f ( x ) = ∑ k α k φ k ( x ) f(x)=\sum_{k}\alpha_{k}\varphi_{k}(x) f(x)=kαkφk(x)
如果扩展是唯一的,即对于任何给定的 f ( x ) f(x) f(x)只有一组 α k \alpha_{k} αk,则 φ k ( x ) \varphi_{k}(x) φk(x)称为基函数,扩展集 { φ k ( x ) } \{\varphi_{k}(x)\} {φk(x)}称为可如此表示的函数类的基。

可表示的函数形成一个函数(张成)空间,称为扩展集的闭包(closed span),记为:
V = S p a n k { φ k ( x ) } ‾ V = \overline{Span_k\{\varphi_{k}(x)\}} V=Spank{φk(x)}
对于任意张成空间 V V V和相应的扩展集 { φ k ( x ) } \{\varphi_{k}(x)\} {φk(x)},存在一组对偶函数 { φ ~ k ( x ) } \{\tilde{\varphi}_{k}(x)\} {φ~k(x)},可用于通过取对偶 φ ~ k ( x ) \tilde{\varphi}_{k}(x) φ~k(x) f ( x ) f(x) f(x)的积分内积来计算系数 { α k } \{\alpha_{k}\} {αk},即:
α k = ⟨ φ ~ k ( x ) , f ( x ) ⟩ = ∫ φ ~ k ∗ ( x ) f ( x ) d x \alpha_{k}=\langle\tilde{\varphi}_{k}(x),f(x)\rangle=\int\tilde{\varphi}_{k}^{*}(x)f(x)dx αk=φ~k(x),f(x)⟩=φ~k(x)f(x)dx

计算系数 α k \alpha_{k} αk涉及三种情况、但基本都是正交小波、只用情况1.

情况I:如果扩展函数形成 V V V的正交基,即:
⟨ φ j ( x ) , φ k ( x ) ⟩ = δ j k = { 0 j ≠ k 1 j = k \langle\varphi_{j}(x),\varphi_{k}(x)\rangle=\delta_{jk}=\begin{cases}0&j\neq k\\1&j = k\end{cases} φj(x),φk(x)⟩=δjk={01j=kj=k
则基及其对偶是等价的。因此 α k = ⟨ φ k ( x ) , f ( x ) ⟩ \alpha_{k}=\langle\varphi_{k}(x),f(x)\rangle αk=φk(x),f(x)⟩

尺度函数(Scaling Function)

现在考虑由实数、平方可积函数 φ ( x ) \varphi(x) φ(x)的整数平移和二进制尺度组成的扩展函数集 φ j , k ( x ) \varphi_{j,k}(x) φj,k(x) φ j , k ( x ) \varphi_{j,k}(x) φj,k(x)称为尺度函数。
φ j , k ( x ) = 2 j / 2 φ ( 2 j x − k ) \varphi_{j,k}(x)=2^{j/2}\varphi(2^{j}x - k) φj,k(x)=2j/2φ(2jxk)
对于所有 j , k ∈ Z j,k\in Z j,kZ φ j , k ( x ) ∈ L 2 ( R ) \varphi_{j,k}(x)\in L^{2}(R) φj,k(x)L2(R)都成立;此时 k k k确定 φ j , k ( x ) \varphi_{j,k}(x) φj,k(x)沿 x x x轴的位置, j j j确定 φ j , k ( x ) \varphi_{j,k}(x) φj,k(x)的宽度, 2 j / 2 2^{j/2} 2j/2控制其高度或幅度。

j j j 增大时, 2 j 2^{j} 2j 变大,意味着 φ ( 2 j x − k ) \varphi(2^{j}x - k) φ(2jxk)中的 x x x被压缩,即函数在 x x x 轴上的变化变得更快,宽度减小

通过适当选择基函数 φ ( x ) \varphi(x) φ(x) { φ j , k ( x ) } \{\varphi_{j,k}(x)\} {φj,k(x)}可以张成 L 2 ( R ) L^{2}(R) L2(R),即所有可度量的平方可积函数的集合。

对于特定值 j = j 0 j = j_{0} j=j0,扩展集 { φ j 0 , k ( x ) } \{\varphi_{j_{0},k}(x)\} {φj0,k(x)} { φ j , k ( x ) } \{\varphi_{j,k}(x)\} {φj,k(x)}的子集。可以将该子空间定义为:
V j 0 = S p a n { φ j 0 , k ( x ) } ‾ V_{j_{0}}=\overline{Span\{\varphi_{j_{0},k}(x)\}} Vj0=Span{φj0,k(x)}
由于 V j 0 V_{j_{0}} Vj0 φ j 0 , k ( x ) \varphi_{j_{0},k}(x) φj0,k(x) k k k上的张成,如果 f ( x ) ∈ V j 0 f(x)\in V_{j_{0}} f(x)Vj0,它可以写成:
f ( x ) = ∑ k α k φ j 0 , k ( x ) f(x)=\sum_{k}\alpha_{k}\varphi_{j_{0},k}(x) f(x)=kαkφj0,k(x)
一般地,对于任何 j j j,我们将在 k k k上张成的子空间记为:
V j = S p a n { φ j , k ( x ) } ‾ V_{j}=\overline{Span\{\varphi_{j,k}(x)\}} Vj=Span{φj,k(x)}

例:哈尔尺度函数(Haar scaling func)

哈尔尺度函数是高度为1、宽度为1的尺度函数。
φ ( x ) = { 1 , 0 ≤ x ≤ 1 0 , o t h e r w i s e \varphi(x)=\begin{cases}1,&0\le x\le 1\\ 0,&otherwise \end{cases} φ(x)={1,0,0x1otherwise
来自Haar基函数。尺度=1时的宽度是尺度=0时的一半;对于x上已知间隔,尺度=1的尺度函数时尺度=0的2倍(纵坐标的值)。(f): f ( x ) = 1 2 φ 1 , 0 ( x ) + φ 1 , 1 ( x ) − 1 4 φ 1 , 4 ( x ) f(x)=\frac 1{2}\varphi_{1,0}(x)+\varphi_{1,1}(x)-\frac 1 4 \varphi_{1,4}(x) f(x)=21φ1,0(x)+φ1,1(x)41φ1,4(x)

image-20241224164826414

上图例子说明:

  1. 增加 j j j的值( j ↑ j \uparrow j:意味着函数被缩小,即 φ j , k ( x ) \varphi_{j,k}(x) φj,k(x)的宽度变窄,能够捕捉到更细微的细节。同时, V j V_j Vj容量增大,能够包含更多具有小尺度变化的函数。
  2. 减少 j j j的值( j ↓ j \downarrow j:意味着函数被放大,即 φ j , k ( x ) \varphi_{j,k}(x) φj,k(x)的宽度变宽,主要捕捉到整体的、低频的信息
多分辨率分析的四项基本要求

在上面的例子中,简单的尺度函数遵循多分辨率分析的如下4个基本要求:

1.尺度函数与其积分变换正交。2.由尺度函数在低尺度上张成的子空间嵌套在高尺度上张成的子空间中。3.唯一在所有 V i V_{i} Vi中都存在的函数是 f ( x ) = 0 f(x) = 0 f(x)=04.任何函数都可以以任意精度表示
Haar尺度函数是紧支撑的,即在一个有限区间(支撑)外函数值为0。$\dots \subset V_{-1}\subset V_0 \subset V_1 \subset V_2\subset \cdots $, 每个子空间 V j V_j Vj都包含了比前一个子空间 V j − 1 V_{j-1} Vj1更多的细节信息。这就像是从模糊到清晰,一步步深入地观察信号或图像。 V − ∞ = 0 V_{-\infty}=0 V=0 V ∞ = L 2 ( R ) V_{\infty}=L^{2}(R) V=L2(R)

在这些条件下,子空间 V j V_{j} Vj的展开函数可以表示为子空间 V j + 1 V_{j + 1} Vj+1的展开函数的加权和,即:
φ j , k ( x ) = ∑ n α n φ j + 1 , n ( x ) \varphi_{j,k}(x)=\sum_{n}\alpha_{n}\varphi_{j + 1,n}(x) φj,k(x)=nαnφj+1,n(x)
将变量 α n \alpha_{n} αn变换为 h φ ( n ) h_{\varphi}(n) hφ(n),进一步得到:
φ j , k ( x ) = ∑ n h φ ( n ) 2 ( j + 1 ) / 2 φ ( 2 ( j + 1 ) x − n ) \varphi_{j,k}(x)=\sum_{n}h_{\varphi}(n)2^{(j + 1)/2}\varphi(2^{(j + 1)}x - n) φj,k(x)=nhφ(n)2(j+1)/2φ(2(j+1)xn)
对于 φ ( x ) = φ 0 , 0 ( x ) \varphi(x)=\varphi_{0,0}(x) φ(x)=φ0,0(x),得到更简单的表达式:
φ ( x ) = ∑ n h φ ( n ) 2 φ ( 2 x − n ) \varphi(x)=\sum_{n}h_{\varphi}(n)\sqrt{2}\varphi(2x - n) φ(x)=nhφ(n)2 φ(2xn)
h φ ( n ) h_{\varphi}(n) hφ(n)被称为尺度函数系数, h φ h_{\varphi} hφ被称为尺度向量。该MRA方程表明任何子空间的扩展函数都可以由自身的双分辨率副本构建。

Haar函数的尺度函数系数是 h φ ( 0 ) = h φ ( 1 ) = 1 2 h_{\varphi}(0)=h_{\varphi}(1)=\frac{1}{\sqrt{2}} hφ(0)=hφ(1)=2 1,所以MRA方程是:
φ ( x ) = 1 2 [ 2 φ ( 2 x ) ] + 1 2 [ 2 φ ( 2 x − 1 ) ] φ ( x ) = φ ( 2 x ) + φ ( 2 x − 1 ) \begin{align} \varphi(x)&=\frac{1}{\sqrt{2}}[\sqrt{2}\varphi(2x)]+\frac{1}{\sqrt{2}}[\sqrt{2}\varphi(2x - 1)]\\ \varphi(x)&=\varphi(2x)+\varphi(2x - 1) \end{align} φ(x)φ(x)=2 1[2 φ(2x)]+2 1[2 φ(2x1)]=φ(2x)+φ(2x1)

小波函数(Wavelet Function)

给定一个满足上述MRA要求的尺度函数(scaling function),我们可以定义一个小波函数 ψ ( x ) \psi(x) ψ(x),它与它的整数平移和二进制尺度一起,跨越了任意两个相邻尺度子空间 V j V_j Vj V j + 1 V_{j + 1} Vj+1 之间的差异。

定义小波函数集:
ψ j , k ( x ) = 2 j / 2 ψ ( 2 j x − k ) \psi_{j,k}(x)=2^{j/2}\psi(2^{j}x - k) ψj,k(x)=2j/2ψ(2jxk)
可以看见这个形式与尺度函数很相似,定义小波子空间:
W j = S p a n k { ψ j , k ( x ) } ‾ W_j=\overline{Span_k\{\psi_{j,k}(x)\}} Wj=Spank{ψj,k(x)}
注意: 如果 f ( x ) ∈ W j f(x)\in W_j f(x)Wj,则有 f f f可以被该空间的基唯一的线性表示。
f ( x ) = ∑ k α k ψ j , k ( x ) f(x)=\sum_{k}\alpha_{k}\psi_{j,k}(x) f(x)=kαkψj,k(x)

尺度和小波子空间之间的关系

尺度和小波函数子空间的关系是:
V j + 1 = V j ⊕ W j V_{j + 1}=V_j\oplus W_j Vj+1=VjWj
其中 ⊕ \oplus 表示空间的直和(类似于集合的并集)。

V j V_j Vj V j + 1 V_{j + 1} Vj+1 中的正交补是 W j W_j Wj,并且 V j V_j Vj 的所有元素与 W j W_j Wj 的元素正交,即 ⟨ φ j , k ( x ) , ψ j , l ( x ) ⟩ = 0 \langle\varphi_{j,k}(x),\psi_{j,l}(x)\rangle = 0 φj,k(x),ψj,l(x)⟩=0,对于所有合适的 j , k , l ∈ Z j,k,l\in Z j,k,lZ

所有可度量、平方可积函数的空间为:
L 2 ( R ) = V 0 ⊕ W 0 ⊕ W 1 ⊕ ⋯ or L 2 ( R ) = V 1 ⊕ W 1 ⊕ W 2 ⊕ ⋯ or L 2 ( R ) = ⋯ ⊕ W − 2 ⊕ W − 1 ⊕ V 0 ⊕ W 0 ⊕ W 1 ⊕ W 2 ⊕ ⋯ \begin{align} L^{2}(R)&=V_0\oplus W_0\oplus W_1\oplus\cdots\\ \text{or}\quad L^{2}(R)&=V_1\oplus W_1\oplus W_2\oplus\cdots\\ \text{or}\quad L^{2}(R)&=\cdots\oplus W_{-2}\oplus W_{-1}\oplus V_0\oplus W_0\oplus W_1\oplus W_2\oplus\cdots \end{align} L2(R)orL2(R)orL2(R)=V0W0W1=V1W1W2=W2W1V0W0W1W2
有一个通用结果, 其中 j 0 j_0 j0 是任意起始尺度。
L 2 ( R ) = V j 0 ⊕ W j 0 ⊕ W j 0 + 1 ⊕ ⋯ L^{2}(R)=V_{j_0}\oplus W_{j_0}\oplus W_{j_0 + 1}\oplus\cdots L2(R)=Vj0Wj0Wj0+1
由于小波空间存在于由下一个更高分辨率尺度函数张成的空间内,任何小波函数也可以表示为移位的、双分辨率尺度函数的加权和,即:
ψ ( x ) = ∑ n h ψ ( n ) 2 φ ( 2 x − n ) \psi(x)=\sum_{n}h_{\psi}(n)\sqrt{2}\varphi(2x - n) ψ(x)=nhψ(n)2 φ(2xn)
其中 h ψ ( n ) h_{\psi}(n) hψ(n) 被称为小波函数系数, h ψ h_{\psi} hψ 是小波向量。

利用小波张成正交补空间且整数小波平移是正交的条件,可以证明由Burrus、Gopinath和Guo [1998]提出的:
h ψ ( n ) = ( − 1 ) n h φ ( 1 − n ) h_{\psi}(n)=(-1)^{n}h_{\varphi}(1 - n) hψ(n)=(1)nhφ(1n)

Haar小波函数

对于Haar小波,相应的小波向量和小波函数是:
h ψ ( 0 ) = ( − 1 ) 0 h φ ( 1 − 0 ) = 1 2 h ψ ( 1 ) = ( − 1 ) 1 h φ ( 1 − 1 ) = − 1 2 ψ ( x ) = ∑ n h ψ ( n ) 2 φ ( 2 x − n ) = φ ( 2 x ) − φ ( 2 x − 1 ) = { 1 , 0 ≤ x < 0.5 − 1 , 0.5 ≤ x < 1 0 , o t h e r w i s e \begin{align} h_{\psi}(0)&=(-1)^{0}h_{\varphi}(1 - 0)=\frac{1}{\sqrt{2}}\\ h_{\psi}(1)&=(-1)^{1}h_{\varphi}(1 - 1)=-\frac{1}{\sqrt{2}}\\\\ \psi(x)&=\sum_{n}h_{\psi}(n)\sqrt{2}\varphi(2x - n)\\&=\varphi(2x)-\varphi(2x - 1)\\ &=\begin{cases}1,&0\le x< 0.5\\-1,&0.5\le x< 1\\0,& otherwise\end{cases} \end{align} hψ(0)hψ(1)ψ(x)=(1)0hφ(10)=2 1=(1)1hφ(11)=2 1=nhψ(n)2 φ(2xn)=φ(2x)φ(2x1)= 1,1,0,0x<0.50.5x<1otherwise

例:

  • (a)原小波函数 ψ 0 , 0 ( x ) \psi_{0,0}(x) ψ0,0(x)、(b) ψ 0 , 2 ( x ) \psi_{0,2}(x) ψ0,2(x)、© ψ 1 , 0 ( x ) \psi_{1,0}(x) ψ1,0(x):对于空间 W 1 W_1 W1, 小波 ψ 1 , 0 ( x ) 小波\psi_{1,0}(x) 小波ψ1,0(x)比针对 W 0 W_0 W0的小波 ψ 0 , 2 ( x ) \psi_{0,2}(x) ψ0,2(x)窄,这说明它能表示更加细微的细节。

  • (d)显示了在子空间 V 1 V_1 V1而不在子空间 V 0 V_0 V0中的函数。该函数在前述例子中曾考虑过[见上图Haar尺度函数(f)]。虽然该函数不能在 V 0 V_0 V0中精确表示,但它可以用 V 0 V_0 V0 W 0 W_0 W0的展开函数进行展开。展开结果如下:
    f ( x ) = f a ( x ) + f d ( x ) f a ( x ) = 3 2 4 φ 0 , 0 ( x ) − 2 8 φ 0 , 2 ( x ) f d ( x ) = − 2 4 ψ 0 , 0 ( x ) − 2 8 ψ 0 , 2 ( x ) f(x) = f_a(x) + f_d(x)\\ f_a(x) = \frac{3\sqrt{2}}{4}\varphi_{0,0}(x) - \frac{\sqrt{2}}{8}\varphi_{0,2}(x)\\ f_d(x) = \frac{-\sqrt{2}}{4}\psi_{0,0}(x) - \frac{\sqrt{2}}{8}\psi_{0,2}(x) f(x)=fa(x)+fd(x)fa(x)=432 φ0,0(x)82 φ0,2(x)fd(x)=42 ψ0,0(x)82 ψ0,2(x)
    f a ( x ) f_a(x) fa(x) f ( x ) f(x) f(x)使用 V 0 V_0 V0尺度函数的近似,而 f d ( x ) f_d(x) fd(x) f ( x ) − f a ( x ) f(x) - f_a(x) f(x)fa(x)的差,用 W 0 W_0 W0小波和表示。这两个展开式,如(e)和(f)所示,将 f ( x ) f(x) f(x)用类似高通和低通滤波器的方法分成两部分。 f a ( x ) f_a(x) fa(x)的低频部分在 f a ( x ) f_a(x) fa(x)中得到, f a ( x ) f_a(x) fa(x)给出了 f ( x ) f(x) f(x)在每个积分区间上的平均值,而高频细节则在 f d ( x ) f_d(x) fd(x)中编码。

image-20241225112021739

一维小波变换(Wavelet Transforms in One Dimension)

小波函数作为一系列的函数族,需要满足以下两个约束条件:

  1. 均值为0:(容许条件,小波函数不应该含有0频分量=函数的平均值)
    ∫ − ∞ ∞ Ψ ( t ) d t = 0 \int^{\infty}_{-\infty}\Psi(t)dt=0 Ψ(t)dt=0
    在傅里叶变换中,我们使用正弦函数展开。可以看到正弦函数也满足这个条件。BUT,正弦函数不满足下面这个条件。

  2. 平方可积(有限能量):
    ∫ − ∞ ∞ ∣ Ψ ( t ) ∣ 2 d t < ∞ \int^{\infty}_{-\infty}|\Psi(t)|^2dt<\infty ∣Ψ(t)2dt<

文中提及的可度量、平方可积,意思是要满足上面的两个条件。

小波序列展开(Wavelet series expansion)

我们定义函数 f ( x ) ∈ L 2 ( R ) f(x)\in L^{2}(R) f(x)L2(R)相对于小波函数 ψ ( x ) \psi(x) ψ(x)和尺度函数 φ ( x ) \varphi(x) φ(x)的小波级数展开为:
f ( x ) = ∑ k c j 0 ( k ) φ j 0 , k ( x ) + ∑ j = j 0 ∞ ∑ k d j ( k ) ψ j , k ( x ) f(x)=\sum_{k}c_{j_{0}}(k)\varphi_{j_{0},k}(x)+\sum_{j = j_{0}}^{\infty}\sum_{k}d_{j}(k)\psi_{j,k}(x) f(x)=kcj0(k)φj0,k(x)+j=j0kdj(k)ψj,k(x)
其中 j 0 j_{0} j0是任意起始尺度, c j 0 ( k ) c_{j_{0}}(k) cj0(k)通常被称为近似系数, d j ( k ) d_{j}(k) dj(k)被称为细节系数。

这说明:任何可度量的、平方可积的一维函数都可以表示为 j ≥ j 0 j\ge j_0 jj0 V j 0 V_{j0} Vj0尺度函数和 W j W_j Wj小波的加权和。

如果展开函数形成一个正交基或紧支撑(=尺度函数与其积分变换正交。这是常见情况),展开系数通过以下方式计算:
c j 0 ( k ) = ⟨ f ( x ) , φ j 0 , k ( x ) ⟩ = ∫ f ( x ) φ j 0 , k ( x ) d x d j ( k ) = ⟨ f ( x ) , ψ j , k ( x ) ⟩ = ∫ f ( x ) ψ j , k ( x ) d x c_{j_{0}}(k)=\langle f(x),\varphi_{j_{0},k}(x)\rangle=\int f(x)\varphi_{j_{0},k}(x)dx\\ d_{j}(k)=\langle f(x),\psi_{j,k}(x)\rangle=\int f(x)\psi_{j,k}(x)dx cj0(k)=f(x),φj0,k(x)⟩=f(x)φj0,k(x)dxdj(k)=f(x),ψj,k(x)⟩=f(x)ψj,k(x)dx

例: y = x 2 y=x^2 y=x2的哈尔小波级数展开

考虑如下的简单函数,计算使用Haar小波表示它的展开系数。
y = { x 2 , 0 ≤ x < 1 0 , otherwise y = \begin{cases} x^{2},&0\leq x < 1\\ 0,&\text{otherwise} \end{cases} y={x2,0,0x<1otherwise
解:令 j 0 = 0 j_{0}=0 j0=0
c 0 ( 0 ) = ∫ 0 1 x 2 φ 0 , 0 ( x ) d x = ∫ 0 1 x 2 d x = x 3 3 ∣ 0 1 = 1 3 d 0 ( 0 ) = ∫ 0 1 x 2 ψ 0 , 0 ( x ) d x = ∫ 0 0.5 x 2 d x − ∫ 0.5 1 x 2 d x = − 1 4 d 1 ( 0 ) = ∫ 0 1 x 2 ψ 1 , 0 ( x ) d x = ∫ 0 0.25 x 2 2 d x − ∫ 0.25 0.5 x 2 2 d x = − 2 32 d 1 ( 1 ) = ∫ 0 1 x 2 ψ 1 , 1 ( x ) d x = ∫ 0.5 0.75 x 2 2 d x − ∫ 0.75 1 x 2 2 d x = − 3 2 32 \begin{align} c_{0}(0)&=\int_{0}^{1}x^{2}\varphi_{0,0}(x)dx=\int_{0}^{1}x^{2}dx=\frac{x^{3}}{3}\Big|_{0}^{1}=\frac{1}{3}\\ d_{0}(0)&=\int_{0}^{1}x^{2}\psi_{0,0}(x)dx=\int_{0}^{0.5}x^{2}dx-\int_{0.5}^{1}x^{2}dx=-\frac{1}{4}\\ d_{1}(0)&=\int_{0}^{1}x^{2}\psi_{1,0}(x)dx=\int_{0}^{0.25}x^{2}\sqrt{2}dx-\int_{0.25}^{0.5}x^{2}\sqrt{2}dx=-\frac{\sqrt{2}}{32}\\ d_{1}(1)&=\int_{0}^{1}x^{2}\psi_{1,1}(x)dx=\int_{0.5}^{0.75}x^{2}\sqrt{2}dx-\int_{0.75}^{1}x^{2}\sqrt{2}dx=-\frac{3\sqrt{2}}{32} \end{align} c0(0)d0(0)d1(0)d1(1)=01x2φ0,0(x)dx=01x2dx=3x3 01=31=01x2ψ0,0(x)dx=00.5x2dx0.51x2dx=41=01x2ψ1,0(x)dx=00.25x22 dx0.250.5x22 dx=322 =01x2ψ1,1(x)dx=0.50.75x22 dx0.751x22 dx=3232
将这些值带入小波级数展开式,有:

image-20241225103135159

image-20241225103229492

离散小波变换(Discrete Wavelet Transforms)

小波级数展开将单个连续变量的函数映射为离散系数序列。如果被展开的函数是离散的,例如连续函数 f ( x ) f(x) f(x)的样本,则展开的系数是函数的离散小波变换( DWT )、展开本身是函数的离散小波反变换。

DWT变换对定义为:
W φ ( j 0 , k ) = 1 M ∑ x f ( x ) φ j 0 , k ( x ) W ψ ( j , k ) = 1 M ∑ x f ( x ) ψ j , k ( x ) for  j ≥ j 0 f ( x ) = 1 M ∑ k W φ ( j 0 , k ) φ j 0 , k ( x ) + 1 M ∑ j = j 0 ∞ ∑ k W ψ ( j , k ) ψ j , k ( x ) W_{\varphi}(j_{0},k)=\frac{1}{\sqrt{M}}\sum_{x}f(x)\varphi_{j_{0},k}(x)\\ W_{\psi}(j,k)=\frac{1}{\sqrt{M}}\sum_{x}f(x)\psi_{j,k}(x) \quad \text{for } j\geq j_{0}\\\\ f(x)=\frac{1}{\sqrt{M}}\sum_{k}W_{\varphi}(j_{0},k)\varphi_{j_{0},k}(x)+\frac{1}{\sqrt{M}}\sum_{j = j_{0}}^{\infty}\sum_{k}W_{\psi}(j,k)\psi_{j,k}(x) Wφ(j0,k)=M 1xf(x)φj0,k(x)Wψ(j,k)=M 1xf(x)ψj,k(x)for jj0f(x)=M 1kWφ(j0,k)φj0,k(x)+M 1j=j0kWψ(j,k)ψj,k(x)
这里 f ( x ) f(x) f(x) φ j 0 , k ( x ) \varphi_{j_{0},k}(x) φj0,k(x) ψ j , k ( x ) \psi_{j,k}(x) ψj,k(x)是离散变量 x = 0 , 1 , ⋯ , M − 1 x = 0,1,\cdots,M - 1 x=0,1,,M1的函数; W φ ( j 0 , k ) W_{\varphi}(j_{0},k) Wφ(j0,k), W ψ ( j , k ) W_{\psi}(j,k) Wψ(j,k)对应上面小波序列展开中的 c j 0 ( k ) c_{j_{0}}(k) cj0(k)近似系数(低频部分), d j ( k ) d_{j}(k) dj(k)细节系数(高频部分)。

第四版:感觉更简单一点点。

与傅里叶级数展开类似,上一节的小波级数展开将单个连续变量的函数映射为一系列离散系数。如果被展开的函数是离散的,那么展开的系数就是它们的离散小波变换(DWT),而展开式本身就是函数的逆离散小波变换。

j 0 = 0 j_0 = 0 j0=0,并将注意力限制在 N N N为2的幂次方(即 N = 2 J N = 2^J N=2J)的 N N N点离散函数上,我们得到:
f ( x ) = 1 N [ T φ ( 0 , 0 ) φ ( x ) + ∑ j = 0 J − 1 ∑ k = 0 2 j − 1 T ψ ( j , k ) ψ j , k ( x ) ] f(x)=\frac{1}{\sqrt{N}}\left[T_{\varphi}(0,0)\varphi(x)+\sum_{j = 0}^{J - 1}\sum_{k = 0}^{2^{j}-1}T_{\psi}(j,k)\psi_{j,k}(x)\right] f(x)=N 1 Tφ(0,0)φ(x)+j=0J1k=02j1Tψ(j,k)ψj,k(x)
其中:
T φ ( 0 , 0 ) = ⟨ f ( x ) , φ 0 , 0 ( x ) ⟩ = ⟨ f ( x ) , φ ( x ) ⟩ = 1 N ∑ x = 0 N − 1 f ( x ) φ ∗ ( x ) T ψ ( j , k ) = ⟨ f ( x ) , ψ j , k ( x ) ⟩ = 1 N ∑ x = 0 N − 1 f ( x ) ψ j , k ∗ ( x ) ( 7 − 138 ) T_{\varphi}(0,0)=\langle f(x),\varphi_{0,0}(x)\rangle=\langle f(x),\varphi(x)\rangle=\frac{1}{\sqrt{N}}\sum_{x = 0}^{N - 1}f(x)\varphi^{*}(x) \\ T_{\psi}(j,k)=\langle f(x),\psi_{j,k}(x)\rangle=\frac{1}{\sqrt{N}}\sum_{x = 0}^{N - 1}f(x)\psi_{j,k}^{*}(x) \quad (7 - 138) Tφ(0,0)=f(x),φ0,0(x)⟩=f(x),φ(x)⟩=N 1x=0N1f(x)φ(x)Tψ(j,k)=f(x),ψj,k(x)⟩=N 1x=0N1f(x)ψj,k(x)(7138)
其中 j = 0 , 1 , ⋯ , J − 1 j = 0,1,\cdots,J - 1 j=0,1,,J1 k = 0 , 1 , ⋯ , 2 j − 1 k = 0,1,\cdots,2^{j}-1 k=0,1,,2j1。由上面公式定义的变换系数分别被称为近似系数和细节系数。

例:计算一维离散小波变换

考虑四点离散函数: f ( 0 ) = 1 f(0)=1 f(0)=1 f ( 1 ) = 4 f(1)=4 f(1)=4 f ( 2 ) = − 3 f(2)= - 3 f(2)=3 f ( 3 ) = 0 f(3)=0 f(3)=0。我们将使用Haar尺度和小波函数,并假设 f ( x ) f(x) f(x)的四个样本分布在基函数的支撑集上。

j 0 = 0 j_{0}=0 j0=0,我们可以计算DWT系数为 :
W φ ( 0 , 0 ) = 1 2 ∑ x = 0 3 f ( x ) φ 0 , 0 ( x ) = 1 2 [ 1 + 4 + ( − 3 ) + 0 ] = 1 W ψ ( 0 , 0 ) = 1 2 [ 1 + 4 + ( − 3 ) ⋅ ( − 1 ) + 0 ⋅ ( − 1 ) ] = 4 W ψ ( 1 , 0 ) = 1 2 [ 1 ⋅ 2 + 4 ⋅ ( − 2 ) + ( − 3 ) ⋅ 0 + 0 ⋅ 0 ] = − 1.5 2 W ψ ( 1 , 1 ) = 1 2 [ 1 ⋅ 0 + 4 ⋅ 0 + ( − 3 ) ⋅ 2 + 0 ⋅ ( − 2 ) ] = − 1.5 2 \begin{align} W_{\varphi}(0,0)&=\frac{1}{2}\sum_{x = 0}^{3}f(x)\varphi_{0,0}(x)=\frac{1}{2}[1 + 4 + (- 3)+0]=1\\ W_{\psi}(0,0)&=\frac{1}{2}[1 + 4 + (- 3)\cdot(- 1)+0\cdot(- 1)]=4\\ W_{\psi}(1,0)&=\frac{1}{2}[1\cdot\sqrt{2}+4\cdot(-\sqrt{2})+(- 3)\cdot0+0\cdot0]=- 1.5\sqrt{2}\\ W_{\psi}(1,1)&=\frac{1}{2}[1\cdot0+4\cdot0+(- 3)\cdot\sqrt{2}+0\cdot(-\sqrt{2})]=- 1.5\sqrt{2}\end{align} Wφ(0,0)Wψ(0,0)Wψ(1,0)Wψ(1,1)=21x=03f(x)φ0,0(x)=21[1+4+(3)+0]=1=21[1+4+(3)(1)+0(1)]=4=21[12 +4(2 )+(3)0+00]=1.52 =21[10+40+(3)2 +0(2 )]=1.52
因此,我们的简单四样本函数相对于Haar缩放和小波函数的离散小波变换是 { 1 , 4 , − 1.5 2 , − 1.5 2 } \{1, 4, - 1.5\sqrt{2}, - 1.5\sqrt{2}\} {1,4,1.52 ,1.52 }。由于变换系数是两个变量——尺度 j j j和平移 k k k的函数,我们将它们组合成一个有序集合。这个集合中的元素与该函数按顺序排列的Haar变换的元素相同:
t H = A H f = 1 2 [ 1 1 1 1 1 1 − 1 − 1 2 − 2 0 0 0 0 2 − 2 ] [ 1 4 − 3 0 ] = [ 1 4 − 1.5 2 − 1.5 2 ] t^{H}=\mathbf{A}_{H} f=\frac{1}{2}\left[\begin{array}{cccc} 1 & 1 & 1 & 1 \\ 1 &1& - 1 & - 1 \\ \sqrt{2} & -\sqrt{2} & 0 & 0 \\ 0 & 0 & \sqrt{2} & -\sqrt{2} \end{array}\right]\left[\begin{array}{c} 1 \\ 4 \\ - 3 \\ 0 \end{array}\right]=\left[\begin{array}{c} 1 \\4\\ - 1.5\sqrt{2} \\ - 1.5\sqrt{2} \end{array}\right] tH=AHf=21 112 0112 01102 1102 1430 = 141.52 1.52
回顾上一节,Haar变换是单个变换域变量(记为 u u u)的函数。 方程:
f ( x ) = 1 M [ W φ ( 0 , 0 ) φ ( x ) + ∑ j = 0 J − 1 ∑ k = 0 2 j − 1 W ψ ( j , k ) ψ j , k ( x ) ] f(x)=\frac 1 {\sqrt{M}}\left[W_{\varphi}(0,0)\varphi(x)+\sum^{J-1}_{j=0}\sum^{2^j-1}_{k=0}W_{\psi}(j,k)\psi_{j,k}(x)\right] f(x)=M 1 Wφ(0,0)φ(x)+j=0J1k=02j1Wψ(j,k)ψj,k(x)
使得能够从其小波变换系数重建原始函数。展开求和式可以构造原始函数:
f ( x ) = 1 2 [ W φ ( 0 , 0 ) φ 0 , 0 ( x ) + W ψ ( 0 , 0 ) ψ 0 , 0 ( x ) + W ψ ( 1 , 0 ) ψ 1 , 0 ( x ) + W ψ ( 1 , 1 ) ψ 1 , 1 ( x ) ] f(x)=\frac{1}{2}[W_{\varphi}(0,0)\varphi_{0,0}(x)+W_{\psi}(0,0)\psi_{0,0}(x)+W_{\psi}(1,0)\psi_{1,0}(x)+W_{\psi}(1,1)\psi_{1,1}(x)] f(x)=21[Wφ(0,0)φ0,0(x)+Wψ(0,0)ψ0,0(x)+Wψ(1,0)ψ1,0(x)+Wψ(1,1)ψ1,1(x)]
对于 x = 0 x = 0 x=0:
f ( 0 ) = 1 2 [ 1 ⋅ 1 + 4 ⋅ 1 + ( − 1.5 2 ) ⋅ 2 + ( − 1.5 2 ) ⋅ 0 ] = 1 f(0)=\frac{1}{2}[1\cdot1 + 4\cdot1+(- 1.5\sqrt{2})\cdot\sqrt{2}+(- 1.5\sqrt{2})\cdot0]=1 f(0)=21[11+41+(1.52 )2 +(1.52 )0]=1
基本的假设是开始尺度 j 0 = 0 j_0=0 j0=0, 此例的4点DWT是 f ( x ) f(x) f(x)的二尺度分解,即 j = { 0 , 1 } j=\{0,1\} j={0,1}.

相关文章:

图像处理-Ch7-小波函数

个人博客&#xff01;无广告观看&#xff0c;因为这节内容太多了&#xff0c;有点放不下&#xff0c;分了三节 文章目录 多分辨率展开(Multi-resolution Expansions)序列展开(Series Expansions)尺度函数(Scaling Function)例&#xff1a;哈尔尺度函数(Haar scaling func)多分…...

Unity中实现转盘抽奖效果(一)

实现思路&#xff1a; 旋转转盘的z轴&#xff0c;开始以角加速度加速到角速度最大值&#xff0c;结束的时候&#xff0c;以角加速度减速使角速度减少到0&#xff0c;然后转盘z轴旋转的角度就是加上每秒以角速度数值大小&#xff0c;为了使角度不能一直增大&#xff0c;对360度…...

小程序基础 —— 07 创建小程序项目

创建小程序项目 打开微信开发者工具&#xff0c;左侧选择小程序&#xff0c;点击 号即可新建项目&#xff1a; 在弹出的新页面&#xff0c;填写项目信息&#xff08;后端服务选择不使用云服务&#xff0c;开发模式为小程序&#xff0c;模板选择为不使用模板&#xff09;&…...

Apache Commons Pool :介绍与使用

Apache Commons Pool &#xff1a;介绍与使用 什么是 commons-pool2&#xff1f; commons-pool2 是 Apache Commons 提供的一个开源对象池实现框架。它旨在为应用程序提供通用的对象池支持&#xff0c;方便开发者管理资源&#xff08;如数据库连接、网络连接等&#xff09;复…...

(二)编译原生SDK以及配置交叉编译链

文章目录 编译原生SDKLinuxSDK的安装第一步解压LinuxSDK第二步安装依赖软件第三步解压Buildroot的dl文件 Linux系统镜像编译、生成第一步 配置编译环境第二步 编译 LinuxSDK编译上面配置好的 环境配置编译 LinuxSDK配置内核选项配置 Buildroot编译 Qt 库 编译生成 Linux 系统镜…...

YK人工智能(三)——万字长文学会torch深度学习

2.1 张量 本节主要内容&#xff1a; 张量的简介PyTorch如何创建张量PyTorch中张量的操作PyTorch中张量的广播机制 2.1.1 简介 几何代数中定义的张量是基于向量和矩阵的推广&#xff0c;比如我们可以将标量视为零阶张量&#xff0c;矢量可以视为一阶张量&#xff0c;矩阵就是…...

【游戏设计原理】41 - 游戏的核心

1. 如何理解&#xff1f; 这条原理主要在讲述“游戏核心”这一概念的重要性及其在游戏开发中的作用。游戏的核心是指决定游戏整体玩法和体验的核心元素&#xff0c;它通常是游戏的主要机制、目标或动作方式。理解这一原理时&#xff0c;我们可以从以下几个层面来考虑&#xff…...

GraalVM:云原生时代的Java虚拟机

1. 概述 GraalVM是由Oracle公司开发的一款高性能、多语言的虚拟机平台。它不仅兼容传统的JVM字节码执行&#xff0c;还引入了即时编译&#xff08;JIT&#xff09;技术的革新&#xff0c;以及对多种编程语言的支持。GraalVM旨在通过提供更高效的执行环境来满足云计算环境中日益…...

goView二开低代码平台1.0

官网文档地址&#xff1a;GoView 说明文档 | 低代码数据可视化开发平台 简介&#xff1a;GoView 是一个拖拽式低代码数据可视化开发平台&#xff0c;通过拖拽创建数据大屏&#xff0c;使用Vue3框架&#xff0c;Ts语言和NaiveUI组件库创建的开源项目。安装步骤和地址文档里都有…...

【golang】go errors 处理错误追踪打印堆栈信息

目录 背景使用参考 背景 使用原生go语言编程时&#xff0c;常常需要处理错误&#xff0c;然而golang中没有像java/python等其他语言的try-catch方式一样的方式来处理异常事件&#xff0c;只能通过函数返回值接收并处理错误。 在实践中&#xff0c;由于牛马的不熟练或随意处理错…...

【brew安装失败】DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0

从你提供的 nslookup 输出看&#xff0c;DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0&#xff0c;这通常意味着无法解析该域名或该域名被某些 DNS 屏蔽了。这种情况通常有几个可能的原因&#xff1a; 可能的原因和解决方法 本地 DNS 问题&#xff1a; 有可能是你的本…...

【Python系列】Python 连接 PostgreSQL 数据库并查询数据

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

深度学习利用Kaggle和Colab免费GPU资源训练

这两个平台&#xff0c;我先用的Colab&#xff0c;在修改完无数bug&#xff0c;成功训练完一个epoch后&#xff0c;超时了&#xff0c;查阅了官网资料&#xff0c;之后应该还可以用&#xff0c;但这个限制是动态的&#xff0c;你可能第二天就可以用&#xff0c;也没准下个月。遂…...

WebAssembly 学习笔记

WASM 概述 wasm最初是为了在浏览器获得接近原生的性能体验。 支持将其他语言实现的程序编译到wasm字节码&#xff0c;引入到浏览器由JS交互调用。 后又有了脱离JS的wasm运行时&#xff0c;可以直接运行wasm。 从而促成了wasm跨平台分发的能力。 但由于运行时的安全沙箱限制&a…...

二、github基础

Github基础 备用github.com网站一、用户界面-Overview&#xff08;概览&#xff09;1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories&#xff08;仓库&#xff09;1 libusb_stm322 savedata3 Fi…...

「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计

智慧文旅运营综合平台&#xff0c;旨在通过集成大数据、云计算、物联网、人工智能等先进技术&#xff0c;为景区、旅游企业及相关管理机构提供一站式的智慧化运营服务。 智慧文旅运营综合平台不仅能够提升游客的游览体验&#xff0c;还能帮助景区管理者实现资源的优化配置和业务…...

《探寻真正开源的大模型:开启AI创新新纪元》

《探寻真正开源的大模型&#xff1a;开启AI创新新纪元》 一、开源大模型崛起&#xff1a;AI 发展的新曙光二、开源大模型的 “庐山真面目”三、明星开源大模型闪耀登场&#xff08;一&#xff09;LLaMA 3&#xff1a;实力强劲的开源先锋&#xff08;二&#xff09;Phi-3&#x…...

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日&#xff0c;2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者&#xff0c;共同探讨云计算产业发展方向和未来机遇&#xff0c;展示云计算标准化工作重要成果。 会上&#xff0c;云建设与应用领航计划&#xff08;2024&#xff09;建云用…...

C#如何操作数据库

C#如何操作数据库 前言1、查询操作2、增删改操作3、需要返回id主键的sql语句执行 前言 本文主要交代如何通过引用 using MySql.Data.MySqlClient;来操作数据库 需要导入.dll文件 例如&#xff1a;在本地Mysql下载目录下->Connecter NET 8.0->Assemblies->net5.0->…...

c++领域展开第八幕——类和对象(下篇 初始化列表、类型转换、static成员)超详细!!!!

文章目录 前言一、初始化列表二、类型转换三、static成员总结 前言 上篇博客我们实现了一个简单的日期类&#xff0c;基本的类和对象是清楚了 今天我们再来学习后面的一些类和对象的语法&#xff0c;慢慢的完善所学的东西 fellow me 一、初始化列表 • 之前我们实现构造函数时…...

termux-boot安卓开机自动启动应用

termux安装 github 蓝奏云 v119.1 termux-boot安装 github 蓝奏云 v0.8.1 安装 给权限运行加锁后台 am启动应用命令 am start -n 包名/启动项获取包名和启动入口&#xff08;图中app为爱玩机工具箱&#xff09; 例 简黑时钟蓝奏云 包名com.hm.jhclock 桌面启动项com.hm.jh…...

Echart实现3D饼图示例

在可视化项目中&#xff0c;很多地方会遇见图表&#xff1b;echart是最常见的&#xff1b;这个示例就是用Echart&#xff0c; echart-gl实现3D饼图效果&#xff0c;复制即可用 //需要安装&#xff0c;再引用依赖import * as echarts from "echarts"; import echar…...

【JAVA】神经网络的基本结构和前向传播算法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c; 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把…...

设计模式-抽象工厂模式

在设计模式中&#xff0c;抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一个非常常见且重要的模式&#xff0c;它属于创建型模式&#xff0c;用于提供创建一组相关或相互依赖对象的接口&#xff0c;而无需指定具体类。它的核心思想是将“创建对象”这一功能…...

webpack

前言 在现代前端开发的浪潮中&#xff0c;Webpack 已经成为一个不可或缺的构建工具。它不仅能够帮助我们打包 JavaScript 代码&#xff0c;还能够处理各种资源&#xff08;如 CSS、图片、字体等&#xff09;&#xff0c;并提供一系列优化手段&#xff0c;极大地提升开发效率和…...

BLIP论文笔记

论文地址 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文思想 其实Clip就相当于只用了ITC...

Java List 集合详解:基础用法、常见实现类与高频面试题解析

正文 在 Java 集合框架中&#xff0c;List 是一个非常重要的接口&#xff0c;广泛用于存储有序的元素集合。本文将带你深入了解 List 接口的基本用法、常见实现类及其扩展&#xff0c;同时通过实际代码示例帮助你快速掌握这些知识。 &#x1f449;点击获取2024Java学习资料 1…...

HTML5 SSE

HTML5 SSE&#xff08;Server-Sent Events&#xff0c;服务器发送事件&#xff09;是一种允许服务器实时向浏览器推送数据的技术。它是HTML5规范的一部分&#xff0c;主要通过HTTP协议实现。SSE的主要特点包括&#xff1a; 单向通信&#xff1a;与WebSocket不同&#xff0c;SSE…...

SpringBoot篇(监控)

目录 学习前言 一、什么是监控&#xff1f; 二、监控的意义 1. 简介 2. 总结 3. 思考 三、可视化监控平台 1. 简介 2. 实操 2.1. 服务端开发 2.2. 客户端开发 配置多个客户端 2.3. 总结 2.4. 思考 四、监控原理 1. 简介 2. 总结 五、自定义监控指标 1. 简介…...

python23-常用的第三方库01:request模块-爬虫

requests 模块是 Python 中的一个第三方库&#xff0c;用于发送 HTTP 请求。 它提供了一个简单且直观的 API&#xff0c;使得发送网络请求和解析响应变得非常容易。requests 模块支持各种 HTTP 方法&#xff0c;如 GET、POST、PUT、DELETE 等&#xff0c;并且具有处理 cookies…...

【pytorch】现代卷积神经网络

文章目录 1 AlexNet2 VGG3 NiN4 GoogLeNet5 批量规范化batch normalization6 ResNet6.1 残差块6.2 resnet 7 DenseNet7.1 稠密块体7.2 过渡层7.3 DenseNet模型 1 AlexNet AlexNet由八层组成&#xff1a;五个卷积层、两个全连接隐藏层和一个全连接输出层。 AlexNet使用ReLU而不…...

Excel 身份证号计算年龄

1. 设置身份证号列格式 复制身份证列值到记事本或其他地方重新设置身份证号列单元格格式为“文本”将复制出去的身份证号重新复制粘贴回来 2. 年龄列单元格中添加公式 DATEDIF(DATE(LEFT(MID(A2, 7, 8), 4), MID(MID(A2, 7, 8), 5, 2), RIGHT(MID(A2, 7, 8), 2)), TODAY(), …...

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据&#xff0c;nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的&#xff0c;再来做一篇总结篇&#xff0c;也分享下练习数据跟工具&#xff0c;如果还是弄不了的&#xff0…...

WebRTC的线程模型

WebRTC中的线程类&#xff1a; Thread类&#xff1a; &#xff08;1&#xff09;Thread类中的数据&#xff1a; class Thread {// 消息队列&#xff1a;MessageList messages_; // 消息队列&#xff0c;所有需要线程处理的消息&#xff0c;都要先入队PriorityQueue delayed_m…...

活动预告 | Microsoft Power Platform 在线技术公开课:实现业务流程自动化

课程介绍 参加“Microsoft Power Platform 在线技术公开课&#xff1a;实现业务流程自动化”活动&#xff0c;了解如何更高效地开展业务。参加我们举办的本次免费培训活动&#xff0c;了解如何借助 Microsoft AI Builder 和 Power Automate 优化工作流。结合使用这些工具可以帮…...

Docker安装(Docker Engine安装)

一、Docker Engine和Desktop区别 Docker Engine 核心组件&#xff1a;Docker Engine是Docker的核心运行时引擎&#xff0c;负责构建、运行和管理容器。它包括守护进程&#xff08;dockerd&#xff09;、API和命令行工具客户端&#xff08;docker&#xff09;。适用环境&#…...

Spring自动化创建脚本-解放繁琐的初始化配置!!!(自动化SSM整合)

一、实现功能(原创&#xff0c;转载请告知) 1.自动配置pom配置文件 2.自动识别数据库及数据表&#xff0c;创建Entity、Dao、Service、Controller等 3.自动创建database.properties、mybatis-config.xml等数据库文件 4.自动创建spring-dao.xml spring-mvc.xml …...

Llama系列关键知识总结

系列文章目录 第一章&#xff1a;LoRA微调系列笔记 第二章&#xff1a;Llama系列关键知识总结 第三章&#xff1a;LLaVA模型讲解与总结 文章目录 系列文章目录Llama: Open and Efficient Foundation Language Models关键要点LLaMa模型架构&#xff1a;Llama2分组查询注意力 (G…...

分布式系统架构6:链路追踪

这是小卷对分布式系统架构学习的第6篇文章&#xff0c;关于链路追踪&#xff0c;之前写过traceId的相关内容&#xff1a;https://juejin.cn/post/7135611432808218661&#xff0c;不过之前写的太浅了&#xff0c;且不成系统&#xff0c;只是简单的理解&#xff0c;今天来捋一下…...

flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath

flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath 引入jar包信息&#xff1a; flink-connector-oracle-cdc:3.2.1 flink:1.20.0 flink-table-runtime:1.20.0 flink-streaming-java:1.20.0 flink-clients:1.20.0 Exception in thread &q…...

Vue.js组件开发-怎样将style私有化

Vue.js组件开发中&#xff0c;将style私有可以通过使用<style scoped>来实现的。scoped属性会告诉Vue为这个组件的CSS样式添加一个数据属性&#xff0c;从而确保这些样式只应用于该组件的元素&#xff0c;而不会影响到其他组件或全局样式。 示例&#xff1a; 展示如何使…...

第十届“挑战杯”大学生课外学术科技作品竞赛解析及资料

“挑战杯”被誉为大学生科技创新创业的“奥林匹克”盛会&#xff0c;它汇聚了来自各个学科、各个年级的精英人才。在这里&#xff0c;同学们带着对未知的好奇和对知识的渴望&#xff0c;组成一个个团队&#xff0c;向难题发起挑战。现在&#xff0c;第十届“挑战杯”大学生课外…...

从0入门自主空中机器人-2-1【无人机硬件框架】

关于本课程&#xff1a; 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程&#xff0c;包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程&#xff0c;带你从0开始&#xff0c;组装属于自己的自主无人机&#xff0c;并让…...

跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验

硬件平台&#xff1a;征战Pro开发板 软件平台&#xff1a;Vivado2018.3 仿真软件&#xff1a;Modelsim10.6d 文本编译器&#xff1a;Notepad 征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8 1 知识背景 LED&#xff0c;又名…...

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(四)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 四、提示范式&#xff08;Explanation for Prompting Paradigm&#xff09; 随着语言模型规模的扩大&#xff0c;基于提示&#xff08;prom…...

分布式算法(五):初识ZAB协议

文章目录 一、什么是Zookeeper二、ZAB与Zookeeper的关系为什么Zookeeper不直接使用Paxos 三、ZAB简介1.名词解释提案&#xff08;Proposal&#xff09;事务&#xff08;Transaction&#xff09;原子广播&#xff08;Atomic Broadcast&#xff09; 2.集群角色领导者&#xff08;…...

用Python操作字节流中的Excel工作簿

Python能够轻松地从字节流中加载文件&#xff0c;在不依赖于外部存储的情况下直接对其进行读取、修改等复杂操作&#xff0c;并最终将更改后的文档保存回字节串中。这种能力不仅极大地提高了数据处理的灵活性&#xff0c;还确保了数据的安全性和完整性&#xff0c;尤其是在网络…...

PHP-Casbin v4.0.0 发布,支持 ACL、RBAC、ABAC 等模型的访问控制框架

PHP-Casbin 是一个用 PHP 语言打造的轻量级开源访问控制框架&#xff0c;支持 ACL、RBAC、ABAC 多种模型。它采用了元模型的设计思想&#xff0c;支持多种经典的访问控制方案&#xff0c;如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。 更新内容&#xff1a; http…...

MIT S081 Lab 2 System Calls

Lab链接 一 实现trace功能 1 题目要求 In this assignment you will add a system call tracing feature that may help you when debugging later labs. You’ll create a new trace system call that will control tracing. It should take one argument, an integer “ma…...

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库

Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;2&#xff09;&#xff1a;配置主数据库 目录 Oracle Dataguard&#xff08;主库为 Oracle 11g 单节点&#xff09;配置详解&#xff08;2&#xff09;&#xff1a;配置主数据库一、配置…...