图像处理-Ch5-图像复原与重建

news2025/1/3 17:51:28

Ch5 图像复原

文章目录

  • Ch5 图像复原
    • 图像退化与复原(Image Degradation and Restoration)
    • 噪声模型(Noise Models)
      • i.i.d.空间随机噪声(Generating Spatial Random Noise with a Specified Distribution)
      • 周期噪声(Periodic Noise)
      • 估计噪声参数(Estimating Noise Parameters)
    • 在仅有噪声情况下图像复原-空域滤波
      • 均值滤波器(Mean Filters)
        • 统计排序滤波器(Order-statistics Filters)
    • 用频域滤波器消除周期噪声(Periodic Noise Reduction by Frequency Domain Filtering)
      • 带阻滤波器(Bandreject Filters)
      • 带通滤波器(Bandpass Filters)
      • 陷波滤波器(Notch filters)
    • 最佳陷波滤波算法(Optimum Notch Filtering)
    • 估计退化函数(Estimating the Degradation Function)
      • 运动引起的图像模糊(Image Blur due to Motion)
    • 直接逆滤波(Direct Inverse Filtering)
    • 维纳滤波器(Wiener Filtering)
    • 约束最小二乘图像复原算法(Constrained Least Squares Filtering)

图像退化与复原(Image Degradation and Restoration)

图像复原目的:以某种预定义的方式改善给定图像。

Q: 图像增强 v.s. 图像复原?

A: 图像增强是一个主观的过程:自行选定不同的工具,比如低通、高通滤波,使得图像主观上看上去比较美观(因个人审美不同而不同)。

而图像复原的大部分过程是客观的。原先是什么样子、恢复原来的样子。

image-20241222220207927
g ( x , y ) = H [ f ( x , y ) ] + η ( x , y ) g ( x , y ) = h ( x , y ) ∗ f ( x , y ) + η ( x , y ) G ( x , y ) = H ( u , v ) F ( u , v ) + N ( u , v ) g(x,y)=H[f(x,y)]+\eta(x,y)\\ g(x,y)=h(x,y)*f(x,y)+\eta(x,y)\\ G(x,y)=H(u,v)F(u,v)+N(u,v) g(x,y)=H[f(x,y)]+η(x,y)g(x,y)=h(x,y)f(x,y)+η(x,y)G(x,y)=H(u,v)F(u,v)+N(u,v)

噪声模型(Noise Models)

假设 H ( u , v ) = 1 H(u,v)=1 H(u,v)=1: g ( x , y ) = f ( x , y ) + η ( x , y ) g(x,y)=f(x,y)+\eta(x,y) g(x,y)=f(x,y)+η(x,y)

i.i.d.空间随机噪声(Generating Spatial Random Noise with a Specified Distribution)

如果 w w w是在区间 ( 0 , 1 ) (0,1) (0,1)上均匀分布的随机变量,那么可以通过求解方程 z = F z − 1 ( w ) z = F_z^{-1}(w) z=Fz1(w)得到一个具有特定累积分布函数(CDF) F z F_z Fz的随机变量 z z z
z = F z − 1 ( w ) z = F_z^{-1}(w) z=Fz1(w)

例:目标是生成具有瑞利(Rayleigh)累积分布函数(CDF)的随机数 z z z

瑞利分布的累积分布函数(CDF)为:
F z ( z ) = { 1 − e − ( z − a ) 2 / b if  z ≥ a 0 if  z < a F_z(z) = \begin{cases} 1 - e^{-(z - a)^2/b} & \text{if } z \geq a \\ 0 & \text{if } z < a \end{cases} Fz(z)={1e(za)2/b0if zaif z<a
通过求解方程 1 − e − ( z − a ) 2 / b = w 1 - e^{-(z - a)^2/b} = w 1e(za)2/b=w,可以得到 z z z的值:
z = a + − b ln ⁡ ( 1 − w ) z = a + \sqrt{-b \ln(1 - w)} z=a+bln(1w)

image-20241222225646091

image-20241222225734753

周期噪声(Periodic Noise)

在图像中,周期噪声是在图像获取时从电力或机电干扰中产生的。这是唯一一种空间依赖型噪声

周期噪声信号(Periodic Noise Signal)
r ( x , y ) = A sin ⁡ ( 2 π u 0 ( x + B x ) / M + 2 π v 0 ( y + B y ) / N ) r(x, y) = A \sin(2\pi u_0(x + B_x)/M + 2\pi v_0(y + B_y)/N) r(x,y)=Asin(2πu0(x+Bx)/M+2πv0(y+By)/N)
对于傅里叶变换:(实际上无法推出这个,但是大概是这个形式)
R ( u , v ) = A j 2 [ exp ⁡ ( j 2 π u 0 B x M ) δ ( u + u 0 , v + v 0 ) − exp ⁡ ( j 2 π v 0 B y N ) δ ( u − u 0 , v − v 0 ) ] R(u, v) = \frac{A}{j2} \left[\exp\left(\frac{j2\pi u_0 B_x}{M}\right) \delta(u + u_0, v + v_0) - \exp\left(\frac{j2\pi v_0 B_y}{N}\right) \delta(u - u_0, v - v_0)\right] R(u,v)=j2A[exp(Mj2πu0Bx)δ(u+u0,v+v0)exp(Nj2πv0By)δ(uu0,vv0)]

估计噪声参数(Estimating Noise Parameters)

分别是高斯、瑞丽、Erlanga噪声

假如没有被噪声污染,那么图中有三个灰度级,直方图中应该有三根线。但是有噪声,现在每根线向两边扩展。

image-20241222230729794

图l对应椒盐噪声的直方图:可以看见一共有4条线(两边分别有两条),椒盐噪声产生黑白、黑色估计和原有的背景色重合,于是直方图中最左的线特别的长(大概的解释)。

估计噪声参数:

  1. 周期噪声:对图像的傅里叶谱审视,可以直接发现:比如在除中心的亮点之外,还有其他的亮点。

    image-20241222231414852

  2. 具有先验知识:事先知道这种图像中会存在噪声、会出现在哪个频段。

  3. 在平坦的图像区域,噪声会暴露出来:比如说一块纯色的地板,应该灰度级是差不多的。

Q: 怎么做?

  1. 最简单的方法是利用图像中的采样数据来估计噪声的均值和方差。
  2. 通过直方图的形状来辨识最接近的概率密度函数(PDF)的匹配。
  3. 假如形状类似高斯,那么高斯只需要均值与方差。

统计矩与中心矩:

统计矩:
μ n = ∑ i = 0 L − 1 ( z i − m ) n p ( z i ) where m = ∑ i = 0 L − 1 z i p ( z i ) \mu_n = \sum_{i = 0}^{L - 1} (z_i - m)^n p(z_i) \quad \text{where} \quad m = \sum_{i = 0}^{L - 1} z_i p(z_i) μn=i=0L1(zim)np(zi)wherem=i=0L1zip(zi)
中心距:

n对应中心距
0 μ 0 = ∑ i = 0 L − 1 ( z i − m ) 0 p ( z i ) = 1 \mu_0 = \sum_{i = 0}^{L - 1} (z_i - m)^0 p(z_i) = 1 μ0=i=0L1(zim)0p(zi)=1
1 μ 1 = ∑ i = 0 L − 1 ( z i − m ) p ( z i ) = ∑ i = 0 L − 1 z i p ( z i ) − m ∑ i = 0 L − 1 p ( z i ) = 0 \mu_1 = \sum_{i = 0}^{L - 1} (z_i - m) p(z_i) = \sum_{i = 0}^{L - 1} z_i p(z_i) - m \sum_{i = 0}^{L - 1} p(z_i) = 0 μ1=i=0L1(zim)p(zi)=i=0L1zip(zi)mi=0L1p(zi)=0
2 μ 2 = ∑ i = 0 L − 1 ( z i − m ) 2 p ( z i ) = Var ( z ) \mu_2 = \sum_{i = 0}^{L - 1} (z_i - m)^2 p(z_i) = \text{Var}(z) μ2=i=0L1(zim)2p(zi)=Var(z)

在仅有噪声情况下图像复原-空域滤波

如果只有噪声, 图像退化模型可以表示为:
g ( x , y ) = f ( x , y ) + η ( x , y ) G ( u , v ) = F ( u , v ) + N ( u , v ) g(x,y)=f(x,y)+\eta(x,y)\\ G(u,v)=F(u,v)+N(u,v) g(x,y)=f(x,y)+η(x,y)G(u,v)=F(u,v)+N(u,v)

均值滤波器(Mean Filters)

均值相当于:给出一组数,经过一系列运算,得到一个新的值。这个值,比这组数中最小值大,比最大值小,那么调和均值滤波器、反调和均值滤波器就算均值滤波器。

滤波器公式
算术平均滤波器 f ^ ( x , y ) = 1 m n ∑ ( s , t ) ∈ S x y g ( s , t ) \hat{f}(x,y) = \frac{1}{mn} \sum_{(s,t) \in S_{xy}} g(s,t) f^(x,y)=mn1(s,t)Sxyg(s,t)
几何均值滤波器 f ^ ( x , y ) = [ ∏ ( s , t ) ∈ S x y g ( s , t ) ] 1 m n \hat{f}(x,y) = \left[ \prod_{(s,t) \in S_{xy}} g(s,t) \right]^{\frac{1}{mn}} f^(x,y)=[(s,t)Sxyg(s,t)]mn1
调和均值滤波器 f ^ ( x , y ) = m n ∑ ( s , t ) ∈ S x y 1 g ( s , t ) \hat{f}(x,y) = \frac{mn}{\sum_{(s,t) \in S_{xy}} \frac{1}{g(s,t)}} f^(x,y)=(s,t)Sxyg(s,t)1mn
反调和均值滤波器 f ^ ( x , y ) = ∑ ( s , t ) ∈ S x y g ( s , t ) Q + 1 ∑ ( s , t ) ∈ S x y g ( s , t ) Q \hat{f}(x,y) = \frac{\sum_{(s,t) \in S_{xy}} g(s,t)^{Q + 1}}{\sum_{(s,t) \in S_{xy}} g(s,t)^{Q}} f^(x,y)=(s,t)Sxyg(s,t)Q(s,t)Sxyg(s,t)Q+1

调和均值滤波器能够很好地去除盐噪声,但不能去除椒噪声。对于高斯噪声很好。

反调和均值滤波器非常适合消除椒盐噪声。当 Q Q Q为正值时,该滤波器消除胡椒噪声。当 Q Q Q为负值时,它消除盐噪声。它不能同时消除两种噪声。

  • 当Q=0时:算术均值是反调和均值的一个特例。
    y ^ ( x , y ) = ∑ ( s , t ) ∈ S x y g ( s , t ) ∑ ( s , t ) ∈ S x y 1 = 1 m n ∑ ( s , t ) ∈ S x y g ( s , t ) \hat y(x,y)= \frac{\sum_{(s,t) \in S_{xy}} g(s,t)}{\sum_{(s,t) \in S_{xy}}1}=\frac{1}{mn}\sum_{(s,t) \in S_{xy}}g(s,t) y^(x,y)=(s,t)Sxy1(s,t)Sxyg(s,t)=mn1(s,t)Sxyg(s,t)

  • 当Q=-1时:是调和均值滤波器。
    f ^ ( x , y ) = ∑ ( s , t ) ∈ S x y 1 ∑ ( s , t ) ∈ S x y g ( s , t ) = m n ∑ ( s , t ) ∈ S x y g ( s , t ) \hat f(x,y)=\frac{\sum_{(s,t) \in S_{xy}1} }{\sum_{(s,t) \in S_{xy}}g(s,t)} =\frac{mn}{\sum_{(s,t) \in S_{xy}}g(s,t)} f^(x,y)=(s,t)Sxyg(s,t)(s,t)Sxy1=(s,t)Sxyg(s,t)mn

统计排序滤波器(Order-statistics Filters)

椒盐噪声反复使用中值滤波器,总能完全去除;同时边缘信息也会丢失。

滤波器公式
中值滤波器 f ^ ( x , y ) = median ( s , t ) ∈ S x y g ( s , t ) \hat{f}(x,y) = \text{median}_{(s,t) \in S_{xy}} g(s,t) f^(x,y)=median(s,t)Sxyg(s,t)
中点滤波器 f ^ ( x , y ) = 1 2 [ max ⁡ ( s , t ) ∈ S x y g ( s , t ) + min ⁡ ( s , t ) ∈ S x y g ( s , t ) ] \hat{f}(x,y) = \frac{1}{2} \left[ \max_{(s,t) \in S_{xy}} g(s,t) + \min_{(s,t) \in S_{xy}} g(s,t) \right] f^(x,y)=21[max(s,t)Sxyg(s,t)+min(s,t)Sxyg(s,t)]
最大滤波器 f ^ ( x , y ) = max ⁡ ( s , t ) ∈ S x y g ( s , t ) \hat{f}(x,y) = \max_{(s,t) \in S_{xy}} g(s,t) f^(x,y)=max(s,t)Sxyg(s,t)
最小滤波器 f ^ ( x , y ) = min ⁡ ( s , t ) ∈ S x y g ( s , t ) \hat{f}(x,y) = \min_{(s,t) \in S_{xy}} g(s,t) f^(x,y)=min(s,t)Sxyg(s,t)
alpha均值滤波器 f ^ ( x , y ) = 1 m n − d ∑ ( s , t ) ∈ S x y g r ( s , t ) \hat{f}(x,y) = \frac{1}{mn - d} \sum_{(s,t) \in S_{xy}} g_{r}(s,t) f^(x,y)=mnd1(s,t)Sxygr(s,t)

用频域滤波器消除周期噪声(Periodic Noise Reduction by Frequency Domain Filtering)

关于以下三种滤波器的奇妙比喻:来自王伟强老师。

入冬时存储的土豆,在开春时会发芽。

  • 带阻滤波器:连皮肉带芽一起削掉。
  • 带通滤波器:与带阻合为1体。
  • 陷波滤波器:只把有芽的部分去除。

带阻滤波器(Bandreject Filters)

image-20241223093954276

idealGaussianButterworth
H ( u , v ) = { 1 if  D ( u , v ) < D 0 − W 2 0 if  D 0 − W 2 ≤ D ( u , v ) ≤ D 0 + W 2 1 if  D ( u , v ) > D 0 + W 2 H(u, v) = \begin{cases} 1 & \text{if } D(u, v) < D_0 - \frac{W}{2} \\ 0 & \text{if } D_0 - \frac{W}{2} \leq D(u, v) \leq D_0 + \frac{W}{2} \\ 1 & \text{if } D(u, v) > D_0 + \frac{W}{2} \end{cases} H(u,v)= 101if D(u,v)<D02Wif D02WD(u,v)D0+2Wif D(u,v)>D0+2W$H(u, v)=\frac{1}{1+\left[\frac{D_0}{D(u, v)}\right]^{2n}} $ H ( u , v ) = 1 − exp ⁡ [ − D 2 ( u , v ) 2 D 0 2 ] H(u, v)=1-\exp\left[-\frac{D^2(u, v)}{2D_0^2}\right] H(u,v)=1exp[2D02D2(u,v)]
这里 D ( u , v ) D(u, v) D(u,v)通常表示频率域中的距离, D 0 D_0 D0 W W W是常数。这种滤波器是一种理想高通滤波器,它在频率域中完全截断了低频部分,保留了高频部分。这里 n n n是滤波器的阶数。Butterworth高通滤波器是一种常用的滤波器,它在频率域中的响应是平滑过渡的,没有理想滤波器那样的尖锐截断。Gaussian高通滤波器也是一种平滑过渡的滤波器,其形状基于高斯函数。
当频率距离 D ( u , v ) D(u, v) D(u,v)小于 D 0 − W 2 D_0 - \frac{W}{2} D02W或大于 D 0 + W 2 D_0+\frac{W}{2} D0+2W时,滤波器的响应为1,表示完全通过;当频率距离在 D 0 − W 2 D_0 - \frac{W}{2} D02W D 0 + W 2 D_0+\frac{W}{2} D0+2W之间时,滤波器的响应为0,表示完全截断。随着 D ( u , v ) D(u, v) D(u,v)的增加,滤波器的响应从0逐渐增加到1,过渡的平滑程度由阶数 n n n决定。阶数越高,过渡越陡峭。它的响应从0逐渐增加到1,过渡更加平滑,没有明显的截断点。

带通滤波器(Bandpass Filters)

H b p = 1 − H b r ( u , v ) H_{bp}=1-H_{br}(u,v) Hbp=1Hbr(u,v)

带通滤波器执行与带阻滤波器相反的操作。得到噪声信号。

带通滤波器与带阻滤波器是一对儿;低通滤波器与高通滤波器是一对儿。

陷波滤波器(Notch filters)

成对出现。(a)是原图像,可以看见存在一些横纹(噪声)。然会得到(b)是(a)的傅里叶谱;通过©中的陷波滤波器的传递函数,可以去除掉噪声。(d)是图像复原后的图;(e)是提取出来的噪声。

IdealGaussianButterworth
H ( u , v ) = { 0 if  D 1 ( u , v ) ≤ D 0  or  D 2 ( u , v ) ≤ D 0 1 else H(u, v) = \begin{cases} 0 & \text{if } D_1(u, v) \leq D_0 \text{ or } D_2(u, v) \leq D_0 \\ 1 & \text{else} \end{cases} H(u,v)={01if D1(u,v)D0 or D2(u,v)D0else H ( u , v ) = 1 − exp ⁡ [ − 1 2 ( D 1 ( u , v ) D 2 ( u , v ) D 0 2 ) ] H(u, v)=1 - \exp\left[-\frac{1}{2}\left(\frac{D_1(u, v)D_2(u, v)}{D_0^2}\right)\right] H(u,v)=1exp[21(D02D1(u,v)D2(u,v))] H ( u , v ) = 1 1 + [ D 0 2 D 1 ( u , v ) D 2 ( u , v ) ] n H(u, v)=\frac{1}{1 + \left[\frac{D_0^2}{D_1(u, v)D_2(u, v)}\right]^n} H(u,v)=1+[D1(u,v)D2(u,v)D02]n1
D 1 ( u , v ) D_1(u, v) D1(u,v) D 2 ( u , v ) D_2(u, v) D2(u,v)是两个距离度量, D 0 D_0 D0是一个阈值。它的过渡比Butterworth滤波器更平滑。 n n n是滤波器的阶数。
D 1 ( u , v ) D_1(u, v) D1(u,v) D 2 ( u , v ) D_2(u, v) D2(u,v)都大于 D 0 D_0 D0时,滤波器的传递函数值为1,表示完全通过;否则,传递函数值为0,表示完全截止。这种滤波器基于高斯函数,传递函数的值从0逐渐增加到1。随着 D 1 ( u , v ) D_1(u, v) D1(u,v) D 2 ( u , v ) D_2(u, v) D2(u,v)的增加,传递函数的值从0逐渐增加到1。阶数 n n n越高,过渡越陡峭。

公式中还定义了 D 1 ( u , v ) D_1(u, v) D1(u,v) D 2 ( u , v ) D_2(u, v) D2(u,v)的具体形式:
D 1 ( u , v ) = [ ( u − M 2 − u 0 ) 2 + ( v − N 2 − v 0 ) 2 ] 1 2 D 2 ( u , v ) = [ ( u − M 2 + u 0 ) 2 + ( v − N 2 + v 0 ) 2 ] 1 2 D_1(u, v)=\left[\left(u - \frac{M}{2} - u_0\right)^2+\left(v - \frac{N}{2} - v_0\right)^2\right]^{\frac 1 2}\\D_2(u, v)=\left[\left(u - \frac{M}{2}+u_0\right)^2+\left(v - \frac{N}{2}+v_0\right)^2\right]^{\frac 1 2} D1(u,v)=[(u2Mu0)2+(v2Nv0)2]21D2(u,v)=[(u2M+u0)2+(v2N+v0)2]21
这里 M M M N N N是图像的尺寸, u 0 u_0 u0 v 0 v_0 v0是滤波器的中心坐标。 这些高通滤波器在图像处理中常用于增强图像的高频细节,例如边缘和纹理。

不同的滤波器适用于不同的应用场景,第一种滤波器是理想高通滤波器,具有最尖锐的截止,但会导致振铃效应;Butterworth和Gaussian高通滤波器则提供了更平滑的过渡,减少了振铃效应。

最佳陷波滤波算法(Optimum Notch Filtering)

当存在多个干扰分量时,之前提到的方法并不总是可行的,因为在滤波过程中会去除过多的图像信息。这里讨论的方法是最优的,因为它使恢复估计值 f ^ ( x , y ) \hat{f}(x,y) f^(x,y)的局部方差最小化。

首先,通过以下方式获得噪声的初始估计:
N ( u , v ) = F N ( u , v ) G ( u , v ) η ( x , y ) = J − 1 ( F N ( u , v ) G ( u , v ) ) N(u,v) = F_N(u,v)G(u,v)\\ \eta(x,y) = \mathfrak{J}^{-1}(F_N(u,v)G(u,v)) N(u,v)=FN(u,v)G(u,v)η(x,y)=J1(FN(u,v)G(u,v))
其中 F N ( u , v ) F_N(u,v) FN(u,v)被构建为仅通过与干扰模式相关的分量。

令:
f ^ ( x , y ) = g ( x , y ) − w ( x , y ) η ( x , y ) \hat{f}(x,y) = g(x,y) - w(x,y)\eta(x,y) f^(x,y)=g(x,y)w(x,y)η(x,y)
η ( x , y ) \eta(x,y) η(x,y)估计已知,我们将确定调制函数 w ( x , y ) w(x,y) w(x,y),以使 f ^ ( x , y ) \hat{f}(x,y) f^(x,y)的局部方差最小化。

目标:局部很好的平滑性,相邻的像素之间比较相似。
min ⁡ σ 2 ( x , y ) = 1 ( 2 a + 1 ) ( 2 b + 1 ) ∑ s = − a a ∑ t = − b b [ f ^ ( x + s , y + t ) − f ˉ ] 2 f ˉ = 1 ( 2 a + 1 ) ( 2 b + 1 ) ∑ s = − a a ∑ t = − b b f ^ ( x + s , y + t ) \min \sigma^2(x,y) = \frac{1}{(2a + 1)(2b + 1)} \sum_{s=-a}^{a} \sum_{t=-b}^{b} [\hat{f}(x + s, y + t) - \bar{f}]^2\\ \bar{f} = \frac{1}{(2a + 1)(2b + 1)} \sum_{s=-a}^{a} \sum_{t=-b}^{b} \hat{f}(x + s, y + t) minσ2(x,y)=(2a+1)(2b+1)1s=aat=bb[f^(x+s,y+t)fˉ]2fˉ=(2a+1)(2b+1)1s=aat=bbf^(x+s,y+t)
对上式展开:
σ 2 ( x , y ) = 1 ( 2 a + 1 ) ( 2 b + 1 ) ∑ s = − a a ∑ t = − b b [ [ g ( x + s , y + t ) − w ( x + s , y + t ) ⋅ η ( x + s , y + t ) ] − [ g ( x , y ) ‾ − w ( x , y ) η ( x , y ) ‾ ] ] 2 \sigma^2 (x,y)= \frac{1}{(2a + 1)(2b + 1)} \sum_{s=-a}^{a} \sum_{t=-b}^{b} \\ \left[ [g(x + s, y + t) - w(x + s, y + t) \cdot \eta(x + s, y + t)] - [\overline{g(x,y)} - \overline{w(x,y)\eta(x,y)}] \right]^2 σ2(x,y)=(2a+1)(2b+1)1s=aat=bb[[g(x+s,y+t)w(x+s,y+t)η(x+s,y+t)][g(x,y)w(x,y)η(x,y)]]2
这个式子中只有 w ( x + s , y + t ) w(x+s,y+t) w(x+s,y+t)是变量,变量一共有 ( 2 a + 1 ) ( 2 b + 1 ) w ( x + s , y + t ) (2a+1)(2b+1)w(x+s,y+t) (2a+1)(2b+1)w(x+s,y+t)个变量。可以看到每一个 ( x , y ) (x,y) (x,y)位置都能建立这样的目标函数、有这么多的变量去求解,实在是难以计算。因此进行简化:将原来的M*N个位置的多目标优化问题,转化为了M*N个i.i.d,优化问题。

w ( x + s , y + t ) = w ( x , y ) w(x + s, y + t) = w(x,y) w(x+s,y+t)=w(x,y), (将 ( 2 a + 1 ) ( 2 b + 1 ) (2a+1)(2b+1) (2a+1)(2b+1)个变元简化为 1 1 1 )我们有单变元函数:
σ 2 ( x , y ) = 1 ( 2 a + 1 ) ( 2 b + 1 ) ∑ s = − a a ∑ t = − b b ( [ g ( x + s , y + t ) − w ( x , y ) ⋅ η ( x + s , y + t ) ] − [ g ( x , y ) ‾ − w ( x , y ) η ( x , y ) ‾ ] ) 2 \sigma^2(x,y) = \frac{1}{(2a + 1)(2b + 1)} \sum_{s=-a}^{a} \sum_{t=-b}^{b}\\ \left( [g(x + s, y + t) - w(x,y) \cdot \eta(x + s, y + t)] - [\overline{g(x,y)} - \overline{w(x,y)\eta(x,y)}] \right)^2 σ2(x,y)=(2a+1)(2b+1)1s=aat=bb([g(x+s,y+t)w(x,y)η(x+s,y+t)][g(x,y)w(x,y)η(x,y)])2
为了最小化 σ 2 \sigma^2 σ2,我们求解:
∂ σ 2 ∂ w ( x , y ) = 0 w ( x , y ) = g ( x , y ) η ( x , y ) ‾ − g ˉ ( x , y ) η ˉ ( x , y ) η 2 ‾ ( x , y ) − η ˉ 2 ( x , y ) \begin{align}\frac{\partial \sigma^2}{\partial w(x,y)}& = 0\\ w(x,y) &= \frac{\overline{g(x,y)\eta(x,y)} - \bar{g}(x,y)\bar{\eta}(x,y)}{\overline{\eta^2}(x,y) - \bar{\eta}^2(x,y)} \end{align} w(x,y)σ2w(x,y)=0=η2(x,y)ηˉ2(x,y)g(x,y)η(x,y)gˉ(x,y)ηˉ(x,y)
η 2 ‾ ( x , y ) \overline{\eta^2}(x,y) η2(x,y)是平方的均值, η ˉ 2 ( x , y ) \bar{\eta}^2(x,y) ηˉ2(x,y)是均值的平方。

这样我们就能求解出每个位置的weight: w ( x , y ) w(x,y) w(x,y),需要求M*N次。

估计退化函数(Estimating the Degradation Function)

该节分为以下两个部分进行讨论:

  1. 假设没有噪声的情况: η ( x , y ) = 0 , g ( x , y ) = h ( x , y ) ∗ f ( x , y ) \eta(x,y)=0,g(x,y)=h(x,y)*f(x,y) η(x,y)=0,g(x,y)=h(x,y)f(x,y)
  2. 假设存在噪声的情况,如何处理?

进行图像复原,第一步要做的,就是找到 H ( u , v ) H(u,v) H(u,v). 有以下三种方法:

图像观察估计实验估计模型估计
H s ( u , v ) = G s ( u , v ) F ^ s ( u , v ) H_s(u,v) = \frac{G_s(u,v)}{\hat{F}_s(u,v)} Hs(u,v)=F^s(u,v)Gs(u,v) H ( u , v ) = G ( u , v ) A H(u,v) = \frac{G(u,v)}{A} H(u,v)=AG(u,v) H ( u , v ) = exp ⁡ [ − k ( u 2 + v 2 ) ] 5 / 6 H(u,v) = \exp\left[-k\left(u^2 + v^2\right)\right]^{5/6} H(u,v)=exp[k(u2+v2)]5/6
G s ( u , v ) G_s(u,v) Gs(u,v)表示观测到的子图像, F ^ s ( u , v ) \hat{F}_s(u,v) F^s(u,v)表示原始子图像的估计值,并且假设由于我们选择了强信号区域,噪声可以忽略不计,然后可以从 H s ( u , v ) H_s(u,v) Hs(u,v)推导出完整函数 H ( u , v ) H(u,v) H(u,v) .Hufnagel等人在1964年基于大气湍流的物理特性提出的退化模型. k → 0 k\rightarrow 0 k0,此时没有大气湍流,相应的 H ( u , v ) = 1 H(u,v)=1 H(u,v)=1,只有噪声影响了。
【一叶知秋】完全不知道图像是怎么获得的、只知道这副污染的图像.我知道图像是被何设备何场景下拍摄、且我手里有这个设备、我再对特定的对象(平坦)在同样的条件下拍摄。用这个特殊对象来估计污染图像.从高空拍摄地面,会受到气流的影响。

运动引起的图像模糊(Image Blur due to Motion)

现在,假设一幅图像由于均匀线性运动而变得模糊。
g ( x , y ) = ∫ 0 T f ( x − x 0 ( t ) , y − y 0 ( t ) ) d t g(x,y) = \int_{0}^{T} f\left(x - x_0(t),y - y_0(t)\right) dt g(x,y)=0Tf(xx0(t),yy0(t))dt
T T T是快门时间。然后,它的傅里叶变换是:
G ( u , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ g ( x , y ) exp ⁡ [ − j 2 π ( u x + v y ) ] d x d y = ∫ − ∞ ∞ ∫ − ∞ ∞ [ ∫ 0 T f ( x − x 0 ( t ) , y − y 0 ( t ) ) d t ] exp ⁡ [ − j 2 π ( u x + v y ) ] d x d y = ∫ 0 T [ ∫ − ∞ ∞ ∫ − ∞ ∞ f ( x − x 0 ( t ) , y − y 0 ( t ) ) exp ⁡ [ − j 2 π ( u x + v y ) ] d x d y ] d t = ∫ 0 T F ( u , v ) exp ⁡ [ − j 2 π ( u x 0 ( t ) + v y 0 ( t ) ) ] d t = F ( u , v ) ∫ 0 T exp ⁡ [ − j 2 π ( u x 0 ( t ) + v y 0 ( t ) ) ] H ( u , v ) = ∫ 0 T exp ⁡ [ − j 2 π ( u x 0 ( t ) + v y 0 ( t ) ) ] d t d t \begin{align*} G(u,v) &= \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} g(x,y) \exp\left[-j2\pi(ux + vy)\right] dxdy\\ &= \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} \left[\int_{0}^{T} f\left(x - x_0(t),y - y_0(t)\right) dt\right] \exp\left[-j2\pi(ux + vy)\right] dxdy\\ &= \int_{0}^{T} \left[\int_{-\infty}^{\infty}\int_{-\infty}^{\infty} f\left(x - x_0(t),y - y_0(t)\right) \exp\left[-j2\pi(ux + vy)\right] dxdy\right] dt\\ &= \int_{0}^{T} F(u,v) \exp\left[-j2\pi(ux_0(t) + vy_0(t))\right] dt\\ &= F(u,v) \int_{0}^{T} \exp\left[-j2\pi(ux_0(t) + vy_0(t))\right]\\\\ H(u,v)& = \int_{0}^{T} \exp\left[-j2\pi(ux_0(t) + vy_0(t))\right] dt dt\end{align*} G(u,v)H(u,v)=g(x,y)exp[j2π(ux+vy)]dxdy=[0Tf(xx0(t),yy0(t))dt]exp[j2π(ux+vy)]dxdy=0T[f(xx0(t),yy0(t))exp[j2π(ux+vy)]dxdy]dt=0TF(u,v)exp[j2π(ux0(t)+vy0(t))]dt=F(u,v)0Texp[j2π(ux0(t)+vy0(t))]=0Texp[j2π(ux0(t)+vy0(t))]dtdt

如果 x 0 ( t ) = a t / T x_0(t) = at/T x0(t)=at/T y 0 ( t ) = 0 y_0(t) = 0 y0(t)=0(垂直方向上没有发生运动,只是在水平方向上抖动了以下),那么:
H ( u , v ) = ∫ 0 T exp ⁡ ( − j 2 π u a t / T ) d t = T π u a sin ⁡ ( π u a ) exp ⁡ ( − j π u a ) H(u,v) = \int_{0}^{T} \exp\left(-j2\pi uat/T\right) dt = \frac{T}{\pi ua} \sin(\pi ua) \exp\left(-j\pi ua\right) H(u,v)=0Texp(j2πuat/T)dt=πuaTsin(πua)exp(ua)
如果 y 0 ( t ) = b t / T y_0(t) = bt/T y0(t)=bt/T而不是0(水平、垂直方向上都发生了运动),那么:
H ( u , v ) = T π ( u a + v b ) sin ⁡ ( π ( u a + v b ) ) exp ⁡ ( − j π ( u a + v b ) ) H(u,v) = \frac{T}{\pi(ua + vb)} \sin(\pi(ua + vb)) \exp\left(-j\pi(ua + vb)\right) H(u,v)=π(ua+vb)Tsin(π(ua+vb))exp((ua+vb))

直接逆滤波(Direct Inverse Filtering)

对于被退化函数 H H H退化的图像,最简单的恢复方法是直接逆滤波:
F ^ ( u , v ) = G ( u , v ) H ( u , v ) \hat{F}(u,v) = \frac{G(u,v)}{H(u,v)} F^(u,v)=H(u,v)G(u,v)
可以看到,这个式子中假设 N ( u , v ) = 0 N(u,v)=0 N(u,v)=0,且我们需要已知 G ( u , v ) , H ( u , v ) G(u,v),H(u,v) G(u,v),H(u,v).

那要是 N ( u , v ) ≠ 0 N(u,v)\neq0 N(u,v)=0,我们可以得到:
F ^ ( u , v ) = F ( u , v ) + N ( u , v ) H ( u , v ) \hat{F}(u,v) = F(u,v) + \frac{N(u,v)}{H(u,v)} F^(u,v)=F(u,v)+H(u,v)N(u,v)
如果退化函数 H ( u , v ) H(u,v) H(u,v)在某一个频率点有零值或非常小的值(一般都是离原点比较远的地方存在),那么 N ( u , v ) / H ( u , v ) N(u,v)/H(u,v) N(u,v)/H(u,v)的比值会很大、可能会压制 F ( u , v ) F(u,v) F(u,v)的估计,造成 F ( u , v ) F(u,v) F(u,v)的估计存在较大误差。

一种解决方法是利用原点附近退化函数的值来进行逆滤波的计算。比如设置一个半径: u 2 + v 2 ≤ R 2 u^2+v^2\le R^2 u2+v2R2,足够小的时候来计算 F ^ ( u , v ) \hat F(u,v) F^(u,v); u 2 + v 2 > R 2 u^2+v^2> R^2 u2+v2>R2的地方,做低通滤波。

image-20241223120002142
(a)(b)©(d)
这是使用完整滤波器(full filter)进行恢复的结果。这是将滤波器函数 H H H在半径为 40 以外进行截断后进行恢复的结果。这是将滤波器函数 H H H在半径为 70 以外进行截断后进行恢复的结果。这是将滤波器函数 H H H在半径为 85 以外进行截断(cut off outside a radius of 85)后进行恢复的结果。
图像看起来较为模糊,细节不够清晰。goodbetter依托。

可以推断出来噪声的频率大于70.(85把噪声包含进去,此时就是 N ( u , v ) / H ( u , v ) N(u,v)/H(u,v) N(u,v)/H(u,v)的比值会很大、可能会压制 F ( u , v ) F(u,v) F(u,v)的估计,造成 F ( u , v ) F(u,v) F(u,v)的估计存在较大误差。得到了依托)

维纳滤波器(Wiener Filtering)

理论上最优的一种图像复原方法。

维纳滤波器寻求使统计误差函数最小化的估计值 f ^ \hat f f^
e 2 = E { ( f − f ^ ) 2 } e^2 = E\{(f - \hat{f})^2\} e2=E{(ff^)2}
E E E是期望算子, f f f是未退化图像。

此表达式在频域中的解为:
F ^ ( u , v ) = [ 1 H ( u , v ) ∣ H ( u , v ) ∣ 2 ∣ H ( u , v ) ∣ 2 + S n ( u , v ) / S f ( u , v ) ] G ( u , v ) \hat{F}(u, v) = \left[\frac{1}{H(u, v)} \frac{|H(u, v)|^2}{|H(u, v)|^2 + S_n(u, v)/S_f(u, v)}\right] G(u, v) F^(u,v)=[H(u,v)1H(u,v)2+Sn(u,v)/Sf(u,v)H(u,v)2]G(u,v)
其中 :

| H ( u , v ) H(u, v) H(u,v) | ∣ H ( u , v ) ∣ 2 = H ∗ ( u , v ) H ( u , v ) |H(u, v)|^2 = H^*(u, v)H(u, v) H(u,v)2=H(u,v)H(u,v) | H ∗ ( u , v ) H^*(u, v) H(u,v) | S n ( u , v ) = ∣ N ( u , v ) ∣ 2 S_n(u, v) = |N(u, v)|^2 Sn(u,v)=N(u,v)2 | S f ( u , v ) = ∣ F ( u , v ) ∣ 2 S_f(u, v) = |F(u, v)|^2 Sf(u,v)=F(u,v)2 |
| --------- | -------------------------------- | ------------------- | ------------------------- | ------------------------- |
| 退化函数 | — | 是 H ( u , v ) H(u, v) H(u,v)的复共轭 | 是噪声的功率谱 | 未退化图像的功率谱 |

实际上很难在现实中求解:主要是因为 S n ( u , v ) / S f ( u , v ) S_n(u, v)/S_f(u, v) Sn(u,v)/Sf(u,v)、很难求噪声的功率谱以及未退化图像的功率谱。通常使用近似来应用: S n ( u , v ) / S f ( u , v ) = K S_n(u, v)/S_f(u, v)=K Sn(u,v)/Sf(u,v)=K
F ^ ( u , v ) = [ 1 H ( u , v ) ∣ H ( u , v ) ∣ 2 ∣ H ( u , v ) ∣ 2 + K ] G ( u , v ) \hat{F}(u, v) = \left[\frac{1}{H(u, v)} \frac{|H(u, v)|^2}{|H(u, v)|^2 + K}\right] G(u, v) F^(u,v)=[H(u,v)1H(u,v)2+KH(u,v)2]G(u,v)

image-20241223142412526

(a)(d)(g)原始图像(b)(e)(h)逆滤波©(f)(i)维纳滤波
原始的 8 位图像,受到了运动模糊和加性噪声的影响。图像的模糊有所减少,但噪声被放大了。与逆滤波相比,维纳滤波在减少模糊的同时,较好地抑制了噪声。
噪声方差降低了一个数量级。
噪声方差降低了五个数量级。通过降低噪声方差,维纳滤波能够有效地去除噪声并减少模糊。

约束最小二乘图像复原算法(Constrained Least Squares Filtering)

了解退化函数 H H H的问题 - 在本章讨论的所有方法中,都存在需要了解退化函数 H H H的问题。

维纳算法不好的是:得事先知道噪声功率谱和未退化图像谱,但这个很难知道。

接下来介绍约束最小二乘滤波方法,这个方法只需要知道噪声的均值和方差。

如果我们用矩阵来模拟退化过程,有:
g ( x , y ) = h ( x , y ) ∗ f ( x , y ) + η ( x , y ) g = H f + η g(x,y)=h(x,y)*f(x,y)+\eta(x,y) \\ g={H}{f}+{\eta} g(x,y)=h(x,y)f(x,y)+η(x,y)g=Hf+η
将其转化成矩阵形式,相当于是做 v e c ( ) vec() vec()操作拉伸。比如原先的 f ( x , y ) : M × N f(x,y): M\times N f(x,y):M×N,现在的 f f f M N × 1 MN\times 1 MN×1.

该方法的核心是 H H H对噪声的敏感性问题。一种缓解该问题的方法是基于平滑度的度量进行恢复。

拉普拉斯(图像的二阶导数: ∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2 f=\frac{\partial^2f}{\partial x^2}+\frac{\partial^2f}{\partial y^2} 2f=x22f+y22f)似乎是一个很好的选择。

一阶导反映变化快慢、二阶导反映了平滑程度。

需要最小化的代价函数 C C C为 :
min ⁡ C = ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ ∇ 2 f ( x , y ) ] 2 s . t .   ∥ g − H f ^ ∥ = ∥ η ∥ \min C=\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}[\nabla^2 f(x,y)]^2\\ s.t.\ \|\mathbf{g}-\mathbf{H}\hat{\mathbf{f}}\|=\|\mathbf{\eta}\| minC=x=0M1y=0N1[2f(x,y)]2s.t. gHf^=η

已知: g , H , η g,H,\eta g,H,η。该问题在频域的解为 :
F ^ ( u , v ) = [ H ∗ ( u , v ) ∣ H ( u , v ) ∣ 2 + γ ∣ P ( u , v ) ∣ 2 ] G ( u , v ) \hat{F}(u,v)=\left[\frac{H^*(u,v)}{|H(u,v)|^2+\gamma|P(u,v)|^2}\right]G(u,v) F^(u,v)=[H(u,v)2+γP(u,v)2H(u,v)]G(u,v)
其中 P ( x , y ) P(x,y) P(x,y)是拉普拉斯算子在空域中的一个形式(傅里叶变换)。
P ( x , y ) = ( 0 − 1 0 − 1 4 − 1 0 − 1 0 ) P(x,y)=\begin{pmatrix} 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end{pmatrix} P(x,y)= 010141010

r = g − H f ^ r=g-{H}\hat{f} r=gHf^,且 φ ( γ ) = r T r = ∥ r ∥ 2 \varphi(\gamma)={r}^T{r}=\|{r}\|^2 φ(γ)=rTr=r2

可以证明 φ ( γ ) \varphi(\gamma) φ(γ) γ \gamma γ的单调递增函数。因此,我们可以调整 γ \gamma γ,使得 :
∥ r ∥ 2 = ∥ η ∥ 2 ± α \|{r}\|^2=\|\mathbf{\eta}\|^2\pm\alpha r2=η2±α

α \alpha α足够小,那么 ∥ r ∥ 2 ∼ ∥ η ∥ 2 \|r\|^2\sim\|\eta\|^2 r2η2. 回看频域的解: F ^ ( u , v ) = [ H ∗ ( u , v ) ∣ H ( u , v ) ∣ 2 + γ ∣ P ( u , v ) ∣ 2 ] G ( u , v ) \hat{F}(u,v)=\left[\frac{H^*(u,v)}{|H(u,v)|^2+\gamma|P(u,v)|^2}\right]G(u,v) F^(u,v)=[H(u,v)2+γP(u,v)2H(u,v)]G(u,v).

已知的条件有: H ( u , v ) , P ( u , v ) , G ( u , v ) H(u,v),P(u,v),G(u,v) H(u,v),P(u,v),G(u,v),那么当 γ \gamma γ确定时: γ ⇒ F ^ ⇒ f ^ ⇒ g − H f ^ = r \gamma\Rightarrow\hat F\Rightarrow \hat f\Rightarrow g-H\hat f=r γF^f^gHf^=r

然后根据 ∥ r ∥ 2 = ∥ η ∥ 2 ± α \|{r}\|^2=\|\mathbf{\eta}\|^2\pm\alpha r2=η2±α确定 ∥ r ∥ 2 \|r\|^2 r2是否落入区间,不在区间的话,可以不断地调整 γ \gamma γ,使 ∥ r ∥ 2 < ∥ η ∥ 2 ± α \|{r}\|^2<\|\mathbf{\eta}\|^2\pm\alpha r2<η2±α落入邻域。此时,所估计的 f ^ \hat f f^是问题的解。

Q: 前面假设噪声已知,那实际中如何计算 ∥ η ∥ 2 \|{\eta}\|^2 η2
∥ η ∥ 2 = M N [ σ η 2 + m η 2 ] { σ η 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ η ( x , y ) − m η ] 2 m η = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 η ( x , y ) \|\mathbf{\eta}\|^2 = MN[\sigma_{\eta}^2+m_{\eta}^2] \\\begin{cases}\sigma_{\eta}^2=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}[\eta(x,y)-m_{\eta}]^2 \\ m_{\eta}=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta(x,y) \end{cases} η2=MN[ση2+mη2]{ση2=MN1x=0M1y=0N1[η(x,y)mη]2mη=MN1x=0M1y=0N1η(x,y)
η 2 , m η 2 \eta^2, m_{\eta}^2 η2,mη2是噪声的方差和期望。

σ η 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ η ( x , y ) − m η ] 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 [ η 2 ( x , y ) − 2 m η η ( x , y ) + m η 2 ] = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 η 2 ( x , y ) − 2 m η 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 η ( x , y ) + m η 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 η 2 ( x , y ) − 2 m η 2 + m η 2 = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 η 2 ( x , y ) − m η 2 ∑ x = 0 M − 1 ∑ y = 0 N − 1 η 2 ( x , y ) = M N [ σ η 2 + m η 2 ] ∥ η ∥ 2 = M N [ σ η 2 + m η 2 ] \begin{align*} \sigma_{\eta}^2&=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}[\eta(x,y)-m_{\eta}]^2\\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}[\eta^2(x,y)-2m_{\eta}\eta(x,y)+m_{\eta}^2]\\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta^2(x,y)-2m_{\eta}\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta(x,y)+m_{\eta}^2\\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta^2(x,y)-2m_{\eta}^2+m_{\eta}^2\\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta^2(x,y)-m_{\eta}^2 \\ \sum_{x = 0}^{M-1}\sum_{y = 0}^{N-1}\eta^2(x,y)&=MN[\sigma_{\eta}^2 + m_{\eta}^2]\\ \|\mathbf{\eta}\|^2 &= MN[\sigma_{\eta}^2+m_{\eta}^2] \end{align*} ση2x=0M1y=0N1η2(x,y)η2=MN1x=0M1y=0N1[η(x,y)mη]2=MN1x=0M1y=0N1[η2(x,y)2mηη(x,y)+mη2]=MN1x=0M1y=0N1η2(x,y)2mηMN1x=0M1y=0N1η(x,y)+mη2=MN1x=0M1y=0N1η2(x,y)2mη2+mη2=MN1x=0M1y=0N1η2(x,y)mη2=MN[ση2+mη2]=MN[ση2+mη2]

下图都展示了经过约束最小二乘滤波处理后的图像。可以看到效果比维纳滤波好一点。

image-20241223151324230

)+m_{\eta}^2\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}{N-1}\eta2(x,y)-2m_{\eta}2+m_{\eta}2\ &=\frac{1}{MN}\sum_{x = 0}^{M-1}\sum_{y = 0}{N-1}\eta2(x,y)-m_{\eta}^2 \

\sum_{x = 0}^{M-1}\sum_{y = 0}{N-1}\eta2(x,y)&=MN[\sigma_{\eta}^2 + m_{\eta}^2]\
|\mathbf{\eta}|^2 &= MN[\sigma_{\eta}2+m_{\eta}2]
\end{align*}
$$

下图都展示了经过约束最小二乘滤波处理后的图像。可以看到效果比维纳滤波好一点。

[外链图片转存中…(img-UnOHPG8p-1735022584536)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2269358.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac 环境 VVenC 编译与编码命令行工具使用教程

VVenC VVenC 是一个开源的高效视频编码器&#xff0c;专门用于支持 H.266/VVC (Versatile Video Coding) 标准的编码。H.266/VVC 是继 HEVC (H.265) 之后的新一代视频编码标准&#xff0c;主要目的是提供比 HEVC 更高的压缩效率&#xff0c;同时保持或提高视频质量。H.266/VVC…

HTML——41有序列表

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>有序列表</title></head><body><!--有序列表&#xff1a;--><!--1.列表中各个元素在逻辑上有先后顺序&#xff0c;但不存在一定的级别关系-->…

详细教程:SQL2008数据库备份与还原全流程!

数据的安全性至关重要&#xff0c;无论是操作系统、重要文件、磁盘存储&#xff0c;还是企业数据库&#xff0c;备份都是保障其安全和完整性的关键手段。拥有备份意味着即使发生误删、系统崩溃或病毒攻击等问题&#xff0c;也能迅速通过恢复功能解决&#xff0c;避免数据丢失带…

IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具

文章目录 一、IDEA二、建立第一个 Java 程序三、IDEA 常用设置四、IDEA 集成版本控制工具&#xff08;Git、GitHub&#xff09;4.1 IDEA 拉 GitHub/Git 项目4.2 IDEA 上传 项目到 Git4.3 更新提交命令 一、IDEA 1、什么是IDEA&#xff1f; IDEA&#xff0c;全称为 IntelliJ ID…

STM32 I2C通信协议

单片机学习&#xff01; 文章目录 目录 文章目录 前言 一、I2C通信 1.1 I2C总线 1.2 I2C通信线 1.3 同步半双工且数据应答 1.4 一主多从 二、硬件电路 2.1 I2C电路模型 2.2 I2C接线要求 2.3 I2C上拉电阻作用 三、I2C时序基本单元 3.1 起始终止条件 3.1.1 起始条件 3.1.2 终止条…

在线免费批量生成 Word 文档工具

为了方便的批量生成 Word 文档&#xff0c;写了个在线 Word 文档批量生成工具&#xff0c;可以根据 Excel 数据和 Word 模板批量生成大量个性化的 Word 文档。适用于需要批量生成格式统一但内容不同的文档场景。比如&#xff1a; 批量生成证书、奖状批量生成合同、协议批量生成…

再见了我的2024

目录 户外运动 阅读及影视剧欣赏 提升专业技能 外婆走了 消费分析 小妹家的二宝 2024 summary 2025年几个小目标 2024生活记录 2024年最后一天&#xff0c;就这样过去了。 总是来不及好好地告个别&#xff0c;就像我们的年老的亲人一样&#xff0c;见一面&#xff0c;少…

Java工程师实现视频文件上传minio文件系统存储及网页实现分批加载视频播放

Java工程师实现minio存储大型视频文件网页实现分批加载视频播放 一、需求说明 老板给我出个题目&#xff0c;让我把的电影文件上传到minio文件系统&#xff0c;再通过WEB端分配加载视频播放&#xff0c;类似于我们普通的电影网站。小编把Java代码共享出来。是真正的能拿过来直…

Three.js教程004:坐标辅助器与轨道控制器

文章目录 坐标辅助器与轨道控制器实现效果添加坐标辅助器添加轨道控制器完整代码完整代码下载坐标辅助器与轨道控制器 实现效果 添加坐标辅助器 创建坐标辅助器: const axesHelper = new Three.AxesHelper(5);添加到场景中: scene.

【优选算法 分治】深入理解分治算法:分治算法入门小专题详解

快速排序算法 (1) 快速排序法 (2) 快排前后指针 (3) 快排挖坑法 颜色分类 题目解析 算法原理 算法原理和移动零非常相似 简述移动零的算法原理 cur 在从前往后扫描的过程中&#xff0c;如果扫描的数符合 f 性质&#xff0c;就把这个数放到 dest 之…

Qt5 中 QGroupBox 标题下沉问题解决

我们设置了QGroupBox 样式之后,发现标题下沉了,那么如何解决呢? QGroupBox {font: 12pt "微软雅黑";color:white;border:1px solid white;border-radius:6px; } 解决后的效果 下面是解决方法: QGroupBox {font: 12pt "微软雅黑";color:white;bo…

sentinel-请求限流、线程隔离、本地回调、熔断

请求限流&#xff1a;控制QPS来达到限流的目的 线程隔离&#xff1a;控制线程数量来达到限流的目录 本地回调&#xff1a;当线程被限流、隔离、熔断之后、就不会发起远程调用、而是使用本地已经准备好的回调去提醒用户 服务熔断&#xff1a;熔断也叫断路器&#xff0c;当失败、…

体验Cursor一段时间后的感受和技巧

用这种LLM辅助的IDE一段时间了&#xff0c;断断续续做了几个小项目了&#xff0c;总结一下整体的感受和自己的一些使用经验。 从Cursor开始又回到Cursor 第一个真正开始使用的LLM的辅助开发IDE就是Cursor&#xff0c;Github的Copilot支持尝试过&#xff0c;但是并没有真正的在…

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本&#xff0c;所以有些配置&#xff0c;是可以不用做的&#xff0c;下面仅记录新增操作&#…

宽带、光猫、路由器、WiFi、光纤之间的关系

1、宽带&#xff08;Broadband&#xff09; 1.1 宽带的定义宽带指的是一种高速互联网接入技术&#xff0c;通常包括ADSL、光纤、4G/5G等不同类型的接入方式。宽带的关键特点是能够提供较高的数据传输速率&#xff0c;使得用户可以享受到稳定的上网体验。 1.2 宽带的作用宽带是…

[2025] 如何在 Windows 计算机上轻松越狱 IOS 设备

笔记 1. 首次启动越狱工具时&#xff0c;会提示您安装驱动程序。单击“是”确认安装&#xff0c;然后再次运行越狱工具。 2. 对于Apple 6s-7P和iPad系列&#xff08;iOS14.4及以上&#xff09;&#xff0c;您应该点击“Optinos”并勾选“允许未经测试的iOS/iPadOS/tvOS版本”&…

Linux SVN下载安装配置客户端

参考&#xff1a; linux下svn服务器搭建及使用&#xff08;包含图解&#xff09;_小乌龟svn新建用户名和密码-CSDN博客 1.ubuntu安装svn客户端 “subversion” sudo apt-get update sudo apt-get install subversion 查看安装的版本信息&#xff0c;同时看是否安装成功 s…

【Windows】Windows系统查看目录中子目录占用空间大小

在对应目录下通过powershell命令查看文件夹及文件大小&#xff0c;不需要管理员权限。 以下为方式汇总&#xff1a; 方式1&#xff08;推荐&#xff0c;免费下载使用&#xff0c;界面友好&#xff09;&#xff1a; 使用工具以下是一些第三方工具treesize_free https://www.ja…

【论文阅读笔记】IceNet算法与代码 | 低照度图像增强 | IEEE | 2021.12.25

目录 1 导言 2 相关工作 A 传统方法 B 基于CNN的方法 C 交互方式 3 算法 A 交互对比度增强 1)Gamma estimation 2)颜色恢复 3)个性化初始η B 损失函数 1)交互式亮度控制损失 2)熵损失 3)平滑损失 4)总损失 C 实现细节 4 实验 5 IceNet环境配置和运行 1 下载…

L25.【LeetCode笔记】 三步问题的四种解法(含矩阵精彩解法!)

目录 1.题目 2.三种常规解法 方法1:递归做 ​编辑 方法2:改用循环做 初写的代码 提交结果 分析 修改后的代码 提交结果 for循环的其他写法 提交结果 方法3:循环数组 提交结果 3.方法4:矩阵 算法 代码实践 1.先计算矩阵n次方 2.后将矩阵n次方嵌入递推式中 提…