1. 噪声

真实图像经常会受到一些随机误差的影响。这种退化通常称为噪声。

1.1 图像的退化

有多种可能原因,例如机械设备不稳定影响图片锐度和图片模糊,电子传感器的缺陷,和在有噪声的电线上进行数字图像传输。图像采集时的退化通常被称为噪声;噪声可能发生在图像捕获、传输和预处理中。

1.2 噪声的种类

Channel Noise

独立于图像信号:(例如信号传输过程中的噪声)
v : 随 机 噪 声 g = f + v v:随机噪声\\ g=f+v v:随机噪声g=f+v
依赖于图像信号(multiplicative noise
g = f + v 1 f = ( 1 + v 1 ) f g=f+v_1f=(1+v_1)f g=f+v1​f=(1+v1​)f

Quantization Noise

当没有用到足够的量化等级时会发生。例如:灰度图的阈值 → \rightarrow →对于黑色的物体和白色的背景,如果原始背景是有噪声的,就在白色的背景上分散一些黑点 → \rightarrow →“盐和胡椒”噪声。

不同灰度量化范围的图像:

Gaussian Noise

白噪声是一种理想化的噪声,它具有所有的噪声频率并且具有相同的强度。高斯噪声是白噪声的一种特例。具有高斯(正态)分布的随机变量的概率密度函数由高斯曲线给出。
Probability density function概率密度函数(PDF):

p ( z ) = 1 2 π σ e x p [ − ( z − μ ) 2 2 σ 2 ] p(z)=\frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{(z-\mu)^2}{2\sigma^2}] p(z)=2π ​σ1​exp[−2σ2(z−μ)2​]
z : z: z: 灰度值
μ : \mu: μ: z z z的平均值
σ : \sigma: σ: z z z的方差

Uniform Noise

均匀噪声的PDF由均匀密度给出。

p ( z ) = { 1 / ( b − a ) , i f ( a ≤ z ≤ b ) 0 , o t h e r w i s e p(z)= \left\{ \begin{array}{lr} 1/(b-a),&if (a\leq z\leq b) \\ 0, & otherwise \end{array} \right. p(z)={1/(b−a),0,​if(a≤z≤b)otherwise​
z : z: z:灰度值
μ : ( a + b ) / 2 \mu:(a+b)/2 μ:(a+b)/2
σ : ( b − a ) 2 / 12 \sigma:(b-a)^2/12 σ:(b−a)2/12

Impulse(salt-and-pepper) Noise

PDF有两极:

p ( z ) = { P a , f o r ( z = a ) P b , f o r ( z = b ) 0 , o t h e r w i s e p(z)= \left\{ \begin{array}{lr} P_a,&for(z=a) \\ P_b, & for(z=b)\\ 0,&otherwise \end{array} \right. p(z)=⎩⎨⎧​Pa​,Pb​,0,​for(z=a)for(z=b)otherwise​
z : z: z:灰度值

1.3 信噪比

signal-to-noise ratio(SNR)信噪比,衡量图片质量的重要值。它与噪声大小有关,值越高,图片质量越好。
信号:
g ( x , y ) = f ( x , y ) + v ( x , y ) g(x,y)=f(x,y)+v(x,y) g(x,y)=f(x,y)+v(x,y)
信号和的平方:
G = ∑ ( x , y ) g 2 ( x , y ) G=\sum_{(x,y)}g^2(x,y) G=(x,y)∑​g2(x,y)
噪声和的平方:
E = ∑ ( x , y ) v 2 ( x , y ) E=\sum_{(x,y)}v^2(x,y) E=(x,y)∑​v2(x,y)
S N R = G E S N R d b = 10 l o g 10 S N R SNR=\frac{G}{E}\\ SNR_{db}=10log_{10}SNR SNR=EG​SNRdb​=10log10​SNR

Digital Camera Image Noise

较亮的区域有更多光,意味着有更强的信号——信噪比更大。

低频噪声——粗糙的图片纹理;高频噪声——更好的图片纹理。空间频率是在每个单位距离(通常为每mm)上正弦函数(如傅里叶变换)重复的度量。

1.4 Image Degradation Model

典型图片退化模型:
把图片看成线性系统:

g ( x , y ) = H [ f ( x , y ) ] + n ( x , y ) g(x,y)=H[f(x,y)]+n(x,y) g(x,y)=H[f(x,y)]+n(x,y)
f ( x , y ) : f(x,y): f(x,y):输入图像
g ( x , y ) : g(x,y): g(x,y):退化后的图像
n ( x , y ) : n(x,y): n(x,y):附加噪声
H : H: H:过程
假设 n ( x , y ) n(x,y) n(x,y)为0,退化系统有以下性质:
线性:
H [ k 1 f 1 ( x , y ) + k 2 f 2 ( x , y ) ] = k 1 H [ f 1 ( x , y ) ] + k 2 H [ f 2 ( x , y ) ] H[k_1f_1(x,y)+k_2f_2(x,y)]=k_1H[f_1(x,y)]+k_2H[f_2(x,y)] H[k1​f1​(x,y)+k2​f2​(x,y)]=k1​H[f1​(x,y)]+k2​H[f2​(x,y)]
可加性:
H [ f 1 ( x , y ) + f 2 ( x , y ) ] = H [ f 1 ( x , y ) ] + H [ f 2 ( x , y ) ] H[f_1(x,y)+f_2(x,y)]=H[f_1(x,y)]+H[f_2(x,y)] H[f1​(x,y)+f2​(x,y)]=H[f1​(x,y)]+H[f2​(x,y)]
齐次:
H [ k 1 f 1 ( x , y ) ] = k 1 H [ f 1 ( x , y ) ] H[k_1f_1(x,y)]=k_1H[f_1(x,y)] H[k1​f1​(x,y)]=k1​H[f1​(x,y)]
位置不变:
H [ f 1 ( x − a , y − b ) ] = g ( x − a , y − b ) H[f_1(x-a,y-b)]=g(x-a,y-b) H[f1​(x−a,y−b)]=g(x−a,y−b)

2. 傅里叶变换

2.1 傅里叶级数

f ( t ) f(t) f(t)是周期性连续方程,连续变量 t t t,周期为 T T T:
f ( t ) = ∑ n = − ∞ ∞ c n e j 2 π n T c n = 1 T ∫ − T / 2 T / 2 f ( t ) e − j 2 π n T t d t f(t)=\sum_{n=-\infty}^{\infty}c_ne^{j\frac{2\pi n}{T}}\\ c_n=\frac{1}{T}\int_{-T/2}^{T/2}f(t)e^{-j\frac{2\pi n}{T}t}dt f(t)=n=−∞∑∞​cn​ejT2πn​cn​=T1​∫−T/2T/2​f(t)e−jT2πn​tdt

2.2 1D傅里叶变换

F { f ( t ) } = F ( ξ ) = ∫ − ∞ ∞ f ( t ) e − 2 π i ξ t d t F − 1 { F ( ξ ) } = f ( t ) = ∫ − ∞ ∞ F ( ξ ) e 2 π i ξ t d t i = − 1 \mathscr F\{f(t)\}=F(\xi)=\int_{-\infty}^\infty f(t)e^{-2\pi i\xi t}dt\\ \mathscr F^{-1}\{F(\xi)\}=f(t)=\int_{-\infty}^\infty F(\xi)e^{2\pi i \xi t}dt\\ i=\sqrt{-1} F{f(t)}=F(ξ)=∫−∞∞​f(t)e−2πiξtdtF−1{F(ξ)}=f(t)=∫−∞∞​F(ξ)e2πiξtdti=−1 ​
函数 f f f的傅里叶谱(FT的幅值函数)的存在条件:函数f必须比指数曲线下降得更快;函数f只能在任何有限区间有限数量的不连续性。
对于数字信号(包括数字图像)傅里叶变换总是存在的,因为它们总是有界的,并且有有限数量的不连续点。
复频谱:
F ( ξ ) = R e ( F ( ξ ) ) + i I m ( F ( ξ ) ) F(\xi)=Re(F(\xi))+iIm(F(\xi)) F(ξ)=Re(F(ξ))+iIm(F(ξ))
功率频谱:
P ( ξ ) = ∣ F ( ξ ) ∣ 2 = R e ( F 2 ( ξ ) ) + I m ( F 2 ( ξ ) ) P(\xi)=|F(\xi)|^2=Re(F^2(\xi))+Im(F^2(\xi)) P(ξ)=∣F(ξ)∣2=Re(F2(ξ))+Im(F2(ξ))

卷积

( f ∗ g ) ( t ) = f ( t ) g ( t ) F ( ξ ) G ( ξ ) = ( F ∗ G ) ( ξ ) (f*g)(t)=f(t)g(t)\\ F(\xi)G(\xi)=(F*G)(\xi) (f∗g)(t)=f(t)g(t)F(ξ)G(ξ)=(F∗G)(ξ)

一个连续变量 t t t的函数 f ( t ) f(t) f(t)与 h ( t ) h(t) h(t)的卷积:
f ( t ) ★ h ( t ) = ∫ − ∞ ∞ f ( τ ) h ( t − τ ) d τ F T f ( t ) ★ h ( t ) = H ( μ ) F ( μ ) f(t) ★ h(t)=\int_{-\infty}^\infty f(\tau)h(t-\tau)d\tau \\ FT{f(t)★ h(t)}=H(\mu)F(\mu) f(t)★h(t)=∫−∞∞​f(τ)h(t−τ)dτFTf(t)★h(t)=H(μ)F(μ)
FT对:
f ( t ) ★ h ( t ) ⇔ H ( μ ) F ( μ ) f ( t ) h ( t ) ⇔ H ( μ ) ★ F ( μ ) f(t)★h(t)\Leftrightarrow H(\mu)F(\mu)\\ f(t)h(t)\Leftrightarrow H(\mu)★F(\mu) f(t)★h(t)⇔H(μ)F(μ)f(t)h(t)⇔H(μ)★F(μ)

F ( k ) = 1 N ∑ n = 0 N − 1 f ( n ) e x p ( − 2 π i n k N ) , f o r ( k = 0 , 1 , . . . , N − 1 ) F(k)=\frac{1}{N}\sum_{n=0}^{N-1}f(n)\rm{exp}(-2\pi i \frac{nk}{N}),for(k=0,1,...,N-1) F(k)=N1​n=0∑N−1​f(n)exp(−2πiNnk​),for(k=0,1,...,N−1) f ( n ) = ∑ n = 0 N − 1 F ( k ) e x p ( 2 π i n k N ) , f o r ( n = 0 , 1 , . . . , N − 1 ) f(n)=\sum_{n=0}^{N-1}F(k)\rm{exp}(2\pi i\frac{nk}{N}),for(n=0,1,...,N-1) f(n)=n=0∑N−1​F(k)exp(2πiNnk​),for(n=0,1,...,N−1)

1D离散傅里叶变换

F ( u ) = ∑ x = 0 M − 1 f ( x ) e − j 2 π u x / M f ( x ) = 1 M ∑ u = 0 M − 1 F ( u ) e j 2 π u x / M F(u)=\sum_{x=0}^{M-1}f(x)e^{-j2\pi ux/M}\\ f(x)=\frac{1}{M}\sum_{u=0}^{M-1}F(u)e^{j2\pi ux/M} F(u)=x=0∑M−1​f(x)e−j2πux/Mf(x)=M1​u=0∑M−1​F(u)ej2πux/M

2.3 2D傅里叶变换

F ( u , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( x , y ) e − 2 π i ( x u + y v ) d x d y f ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ F ( u , v ) e 2 π i ( x u + y v ) d u d v F ( u , v ) = 1 M N ∑ m = 0 M − 1 ∑ n = 0 N − 1 f ( m , n ) e x p ( − 2 π i ( m u M + n v N ) ) f ( m , n ) = ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e x p ( 2 π i ( m u M + n v N ) ) u = 0 , . . . , M − 1 ; v = 0 , . . . , N − 1 ; m = 0 , . . . , M − 1 ; n = 0 , . . . , N − 1 ; F(u,v)=\int_{-\infty}^{\infty}\int_{-\infty}^\infty f(x,y)e^{-2\pi i(xu+yv)}dxdy\\ f(x,y)=\int_{-\infty}^\infty\int_{-\infty}^\infty F(u,v)e^{2\pi i(xu+yv)}dudv \\ F(u,v)=\frac{1}{MN}\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)exp(-2\pi i(\frac{mu}{M}+\frac{nv}{N}))\\ f(m,n)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)exp(2\pi i(\frac{mu}{M}+\frac{nv}{N}))\\ u=0,...,M-1;v=0,...,N-1;\\ m=0,...,M-1;n=0,...,N-1; F(u,v)=∫−∞∞​∫−∞∞​f(x,y)e−2πi(xu+yv)dxdyf(x,y)=∫−∞∞​∫−∞∞​F(u,v)e2πi(xu+yv)dudvF(u,v)=MN1​m=0∑M−1​n=0∑N−1​f(m,n)exp(−2πi(Mmu​+Nnv​))f(m,n)=u=0∑M−1​v=0∑N−1​F(u,v)exp(2πi(Mmu​+Nnv​))u=0,...,M−1;v=0,...,N−1;m=0,...,M−1;n=0,...,N−1;
功率谱是图像处理中常用的评估频率分布的方法。
F ( u , v ) = R e ( F ( u , v ) ) + i I m ( F ( u , v ) ) F(u,v)=Re(F(u,v))+iIm(F(u,v)) F(u,v)=Re(F(u,v))+iIm(F(u,v))
功率频谱:
P ( u , v ) = ∣ F ( u , v ) ∣ 2 = R e ( F 2 ( u , v ) ) + I m ( F 2 ( u , v ) ) P(u,v)=|F(u,v)|^2=Re(F^2(u,v))+Im(F^2(u,v)) P(u,v)=∣F(u,v)∣2=Re(F2(u,v))+Im(F2(u,v))

2D离散变换

F ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − j 2 π ( u x / M + v y / N ) f ( x , y ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e j 2 π ( u x / M + v y / N ) F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi(ux/M+vy/N)}\\ f(x,y)=\frac{1}{MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi(ux/M+vy/N)} F(u,v)=x=0∑M−1​y=0∑N−1​f(x,y)e−j2π(ux/M+vy/N)f(x,y)=MN1​u=0∑M−1​v=0∑N−1​F(u,v)ej2π(ux/M+vy/N)
光谱对平移不敏感,但它会以与旋转后的图像相同的角度旋转。

3. 局部预处理

局部预处理是利用输入图像中一个像素的小邻域在输出图像中产生一个新的亮度值的预处理操作。主要有两类:smoothinggradient operators。平滑的目的是抑制噪声或图像中的其他小波动,等效于傅里叶变换域的高频抑制;梯度算子是基于图像函数的局部导数。在图像函数发生快速变化的位置,导数越大。目的是在图像中指出这样的位置,相当于在傅里叶变换域抑制低频。

3.1 2D卷积

( f ∗ h ) ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( a , b ) h ( x − a , y − b ) d a d b ( f ∗ h ) ( x , y ) = ( h ∗ f ) ( x , y ) (f*h)(x,y)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(a,b)h(x-a,y-b)dadb\\ (f*h)(x,y)=(h*f)(x,y) (f∗h)(x,y)=∫−∞∞​∫−∞∞​f(a,b)h(x−a,y−b)dadb(f∗h)(x,y)=(h∗f)(x,y)
给定两个图像A和B, A和B的卷积意味着在每一点B上重复整个A,反之亦然。
线性处理:
g ( i , j ) = ∑ ( m , n ) ∈ O ∑ h ( i − m , j − n ) f ( m , n ) = ( f ∗ h ) ( i , j ) g(i,j)=\sum_{(m,n)\in O}\sum h(i-m,j-n)f(m,n) \\=(f*h)(i,j) g(i,j)=(m,n)∈O∑​∑h(i−m,j−n)f(m,n)=(f∗h)(i,j)
将输出图像像素的结果值计算为输入图像中像素的局部邻域亮度的线性组合。邻域内像素的贡献通过一个系数进行加权。

3.2 空域方法

点处理=灰度变换,线性滤波器=掩膜处理。
基本的方法是将掩膜系数和掩膜下像素在图像中特定位置的强度相乘。

假设每个像素处的噪声值是一个均值和标准差均为零的独立随机变量 σ σ σ。同一静态场景在相同条件下被捕捉n次。对于每幅图像,一个特定的像素 g i , i = 1.. n g_i, i=1..n gi​,i=1..n被选中。正确值的估计值可以由 g g g的平均值与相应的噪声值得到。
g 1 + . . . + g n n + v 1 + . . . + v n n \frac{g_1+...+g_n}{n}+\frac{v_1+...+v_n}{n} ng1​+...+gn​​+nv1​+...+vn​​
如果同一场景的n幅图像可用,则可以通过下面公式在不模糊图像的情况下完成平滑:
f ( i , j ) = 1 n ∑ k = 1 n g k ( i , j ) f(i,j)=\frac{1}{n}\sum_{k=1}^{n}g_k(i,j) f(i,j)=n1​k=1∑n​gk​(i,j)
平均是离散卷积的一种特殊情况,对于一个 3 ∗ 3 3 * 3 3∗3的邻域,给出了卷积掩膜 h h h:
h = 1 9 [ 1 1 1 1 1 1 1 1 1 ] h=\frac{1}{9}\left[ \begin{matrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{matrix} \right] h=91​⎣⎡​111​111​111​⎦⎤​
其他的卷积掩模,近似的性质噪声使用高斯概率分布:
h = 1 10 [ 1 1 1 1 1 1 1 1 1 ] h=\frac{1}{10}\left[ \begin{matrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{matrix} \right] h=101​⎣⎡​111​111​111​⎦⎤​
h = 1 16 [ 1 1 1 1 1 1 1 1 1 ] h=\frac{1}{16}\left[ \begin{matrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{matrix} \right] h=161​⎣⎡​111​111​111​⎦⎤​
梯度算子确定边缘——图像函数经历快速变化的位置;他们有一个类似的抑制低频效果在傅里叶变换域。边缘是附加在单个像素上的属性,有两个分量,大小和方向。(没有展开)

3.3 频域方法

F F F, H H H为 f f f和 h h h的傅里叶变换结果。
G ( u , v ) = F ( u , v ) ∗ H ( u , v ) G(u,v)=F(u,v)*H(u,v) G(u,v)=F(u,v)∗H(u,v)两矩阵元素逐个相乘 。


频域中的滤波算法:
输入图像 f ( x , y ) f(x,y) f(x,y)尺寸为 M × N M×N M×N,由此获得参数 P = 2 M P=2M P=2M, Q = 2 N Q=2N Q=2N
构造一个填充图像 f p ( x , y ) f_p(x,y) fp​(x,y)尺寸为 P × Q P×Q P×Q,在多余的位置加上0。
用 ( − 1 ) x + y (-1)^{x+y} (−1)x+y乘 f p ( x , y ) f_p(x,y) fp​(x,y),使其转换居中,得到 F ( u , v ) F(u,v) F(u,v)。
计算DFT。
构造对称的滤波器函数 H ( u , v ) H(u,v) H(u,v)大小为 P × Q P×Q P×Q,中心坐标为 ( P / 2 , Q / 2 ) (P/2,Q/2) (P/2,Q/2)
用数组乘法计算 G ( u , v ) = H ( u , v ) F ( u , v ) G(u,v)=H(u,v)F(u,v) G(u,v)=H(u,v)F(u,v)
获得处理后的图像:
g p ( x , y ) = r e a l [ I n v e r s e D F T ( G ( u , v ) ) ] ( − 1 ) x + y g_p(x,y)=real[Inverse DFT(G(u,v))](-1)^{x+y} gp​(x,y)=real[InverseDFT(G(u,v))](−1)x+y
最终结果 g ( x , y ) g(x,y) g(x,y)是 g p ( x , y ) g_p(x,y) gp​(x,y)的左上部分,大小为 M × N M×N M×N

理想低通滤波器 H H H:


Butterworth低通滤波器:


频率响应:

Gaussian低通滤波器:

傅里叶频谱:


高通滤波器可以从低通滤波器得来:

理想高通滤波器:

Butterworth高通滤波器:

高斯高通滤波器:

带通滤波器:采用类似的方法构造了在一定范围内选择频率进行增强的带通滤波器,以及具有方向性响应的滤波器等。
带通滤波器由带阻滤波器得到:

用频域滤波降噪:
将垂直周期噪声线转换为频谱峰值;一个过滤器用来抑制这些周期性噪声(可见的白色圆形区域)

5. 图像修复

大多数图像修复依赖于图片的卷积,来降低退化。

MV:频域的噪音和过滤相关推荐

  1. java 声波 噪音过滤_攻略||让噪音一边去的隔音材料全解析!

    工作一天,拖着疲惫的身体回家后,最希望的莫过于可以得到良好的休息.然而,楼下装修施工声.隔壁的吵闹声.窗外的车马声,声声入耳,实在让人崩溃. 大家买房不外乎要求:地段好,户型好,隔音好--其他都好说, ...

  2. Python OpenCV3 计算机视觉秘籍:1~5

    原文:OpenCV 3 Computer Vision with Python Cookbook 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 计算机视觉 译文集],采 ...

  3. 27岁华裔小伙一战成名!搞出美国新冠最准预测模型

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 金磊 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI ...

  4. 27岁华裔小伙一战成名!搞出美国新冠最准预测模型,一人干翻专业机构,彭博:Superstar...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 金磊 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 年仅27岁的他,被 ...

  5. 从 “香农熵” 到 “告警降噪” ,如何提升告警精度?

    作者:董善东 & 白玙 对于大部分人来说,信息是一个非常抽象的概念.人们常常说信息很多或信息较少,但却很难说清楚信息到底有多少.比如一份帮助文档或一篇文章到底有多少信息量.直到 1948 年, ...

  6. 机器学习相关——SVD分解

    前面写了个简单的线性代数系列文章,目的就是让大家在接触SVD分解前,先了解回忆一下线性代数的基本知识,有助于大家理解SVD分解.不至于一下被大量的线性代数操作搞晕.这次终于开始正题--SVD的介绍了. ...

  7. 27岁华裔小伙搞出美国新冠最准预测模型,一人干翻专业机构,彭博:Superstar...

    金磊 晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 年仅27岁的他,被彭博评价为"新冠病毒数据超级明星". 为什么? 凭一己之力,仅用一周时间打造的新冠预测模型,准 ...

  8. 【数据处理】奇异值分解(SVD) 数据降噪的python实现

    [数据处理]奇异值分解(SVD) 数据降噪的python实现 一.特征值分解 二.奇异值分解 三.python实现 参考资料 一.特征值分解 (参考资料[1])对称矩阵不同的特征值对应的特征向量两两正 ...

  9. 协同感知综述:从异质单体到分层合作

    论文标题:A Survey and Framework of Cooperative Perception: From Heterogeneous Singleton to Hierarchical ...

最新文章

  1. web设计经验一 提升移动设备响应式设计的8个建议
  2. 如何在Membership中实现修改密码的功能
  3. 慎防ARP欺骗与网络嗅探(下篇)
  4. Navicat 10 for SQL Server - 绿色中文版
  5. vue-cli 相同页面的跳转,但路由参数不同的情况下 组件状态没有更新的问题是为什么 如何解决
  6. android中实现“再按一次退出”功能
  7. nmon Analyser分析仪
  8. 吸血鬼教授vs狼人工程师
  9. JavaScript BOM基础
  10. 黑客帝国“01”瀑布流C++
  11. 发现一本数学好书——重温微积分
  12. Qt软件的发展历史及优势特点
  13. wow.js动画插件
  14. KVM之父的新作ScyllaDB:用C++开发的Cassandra兼容列数据库,性能提升10倍
  15. 平板android rom下载地址,Android平板第三方ROM开放下载
  16. PBI培训(3):Power BI主题设置方法汇总及示例
  17. 飞腾服务器如何查看cpu型号,飞腾CPU服务器云平台管理
  18. GoLang之Map深度讲解
  19. 查看linux设备Ran的大小,linux – 来自/ dev / zero和/ dev / urandom的不同文件大小
  20. 【管理心得之八】通过现象看本质,小王和小张谁更胜任?

热门文章

  1. 工人物语5战役攻略_《工人物语5》全攻略(下篇)
  2. vmware虚拟机运行速度卡慢原因分析及解决办法大全(一)
  3. 求知讲堂python+人工智能day4
  4. JTable 合并单元格 简易实现
  5. FreeType像素格式:FT_PIXEL_MODE_MONO
  6. 怎么判断数据是否符合某个统计学分布
  7. vulnhub Vegeta: 1
  8. 【工控老马】单片机与西门子S7-200通信原理详解
  9. 从“走近”到“走进”年轻人,这家厨电品牌凭什么脱颖而出?
  10. jhat命令(Java Heap Analyse Tool)