目录

  • 离散拉普拉斯算子的推导
  • 高斯拉普拉斯算子的推导

离散拉普拉斯算子的推导

连续函数的拉普拉斯算子如下:
∇2f=∂2f∂x2+∂2f∂y2\nabla^{2} f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}} ∇2f=∂x2∂2f​+∂y2∂2f​
在该式中,f(x,y)f(x,y)f(x,y)代表图像(x,y)(x,y)(x,y)位置的像素值。

利用导数定义,我们可以得到f(x,y)f(x,y)f(x,y)关于x,yx,yx,y的两侧偏导数如下:
∂f(x,y)∂x=limh→0f(x+h,y)−f(x,y)h∂f(x,y)∂x=limh→0f(x,y)−f(x−h,y)h∂f(x,y)∂y=limh→0f(x,y+h)−f(x,y)h∂f(x,y)∂y=limh→0f(x,y)−f(x,y−h)h∂f(x,y)∂x=limh→0f(x+h,y)−f(x−h,y)2h∂f(x,y)∂y=limh→0f(x,y+h)−f(x,y−h)2h\begin{aligned} \frac{\partial f(x,y)}{\partial x}&=\mathop{lim}\limits_{h \rightarrow 0} \frac{f(x+h, y)-f(x, y)}{h} \\ \frac{\partial f(x,y)}{\partial x}&=\mathop{lim}\limits_{h \rightarrow 0} \frac{f(x, y)-f(x-h, y)}{h} \\ \frac{\partial f(x,y)}{\partial y}&=\mathop{lim}\limits_{h \rightarrow 0}\frac{f(x, y+h)-f(x, y)}{h} \\ \frac{\partial f(x,y)}{\partial y}&=\mathop{lim}\limits_{h \rightarrow 0}\frac{f(x, y)-f(x, y-h)}{h} \\ \frac{\partial f(x,y)}{\partial x}&=\mathop{lim}\limits_{h \rightarrow 0} \frac{f(x+h, y)-f(x-h, y)}{2h} \\ \frac{\partial f(x,y)}{\partial y}&=\mathop{lim}\limits_{h \rightarrow 0}\frac{f(x, y+h)-f(x, y-h)}{2h} \\ \end{aligned} ∂x∂f(x,y)​∂x∂f(x,y)​∂y∂f(x,y)​∂y∂f(x,y)​∂x∂f(x,y)​∂y∂f(x,y)​​=h→0lim​hf(x+h,y)−f(x,y)​=h→0lim​hf(x,y)−f(x−h,y)​=h→0lim​hf(x,y+h)−f(x,y)​=h→0lim​hf(x,y)−f(x,y−h)​=h→0lim​2hf(x+h,y)−f(x−h,y)​=h→0lim​2hf(x,y+h)−f(x,y−h)​​
对于函数f(x,y)f(x,y)f(x,y)的二阶导数,利用导数定义以及上述得到的偏导数,可以得到以下式子。
∂2f∂x2=limh→0∂f(x+h,y)∂x−∂f(x,y)∂xh=limh→0f(x+h,y)−f(x,y)h−f(x,y)−f(x−h,y)hh=limh→0f(x+h,y)+f(x−h,y)−2f(x,y)h2∂2f∂y2=limh→0∂f(x,y+h)∂x−∂f(x,y)∂xh=limh→0f(x,y+h)−f(x,y)h−f(x,y)−f(x,y−h)hh=limh→0f(x,y+h)+f(x,y−h)−2f(x,y)h2\begin{aligned} \frac{\partial^{2} f}{\partial x^{2}} &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\partial f(x+h, y)}{\partial x}-\frac{\partial f(x, y)}{\partial x}}{h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{f(x+h, y)-f(x, y)}{h}-\frac{f(x, y)-f(x-h, y)}{h}}{h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{f(x+h, y)+f(x-h, y)-2f(x,y)}{h^2}\\ \frac{\partial^{2} f}{\partial y^{2}} &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\partial f(x, y+h)}{\partial x}-\frac{\partial f(x, y)}{\partial x}}{h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{f(x, y+h)-f(x, y)}{h}-\frac{f(x, y)-f(x, y-h)}{h}}{h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{f(x, y+h)+f(x, y-h)-2f(x,y)}{h^2}\\ \end{aligned} ∂x2∂2f​∂y2∂2f​​=h→0lim​h∂x∂f(x+h,y)​−∂x∂f(x,y)​​=h→0lim​hhf(x+h,y)−f(x,y)​−hf(x,y)−f(x−h,y)​​=h→0lim​h2f(x+h,y)+f(x−h,y)−2f(x,y)​=h→0lim​h∂x∂f(x,y+h)​−∂x∂f(x,y)​​=h→0lim​hhf(x,y+h)−f(x,y)​−hf(x,y)−f(x,y−h)​​=h→0lim​h2f(x,y+h)+f(x,y−h)−2f(x,y)​​

由于图像之间的间距插值为1,所以我们使用1来近似代替hhh,由此可以得到以下等式:
∂2f∂x2≈f(x+1,y)+f(x−1,y)−2f(x,y)∂2f∂y2≈f(x,y+1)+f(x,y−1)−2f(x,y)\frac{\partial^{2} f}{\partial x^{2}} \approx f(x+1,y)+f(x-1,y)-2f(x,y)\\ \frac{\partial^{2} f}{\partial y^{2}} \approx f(x,y+1)+f(x,y-1)-2f(x,y)\\ ∂x2∂2f​≈f(x+1,y)+f(x−1,y)−2f(x,y)∂y2∂2f​≈f(x,y+1)+f(x,y−1)−2f(x,y)
综合上述两式,可以得到离散拉普拉斯算子如下:
∇d2f=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)\nabla^{2}_d f=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) ∇d2​f=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y)
将其表示为卷积核的形式,可以得到如下卷积核:
∇d2=[0101−41010]\nabla_{d}^{2}=\left[\begin{array}{ccc} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{array}\right] ∇d2​=⎣⎡​010​1−41​010​⎦⎤​
但是这样的卷积核不是代表旋转情况的卷积,为了表示旋转情况的卷积我们提出以下方式:

如图所示,我们使用新的坐标(u,v)(u,v)(u,v),在坐标系中[11−11][xy]=[uv]\left[\begin{array}{cc} 1& 1\\ -1 & 1 \end{array}\right]\left[\begin{array}{c}x\\y\end{array}\right]=\left[\begin{array}{c}u\\v\end{array}\right][1−1​11​][xy​]=[uv​],这个变换相当于对原坐标轴逆时针旋转45o45^o45o角,并拉伸为原来的2倍。

便于计算方便,列出后面需要用到的变换。

当ϕ(u,v)=f(x,y)\phi(u,v)=f(x,y)ϕ(u,v)=f(x,y)时,以下变换成立(以下证明都建立在这个基础上):
ϕ(u+1,v)=f(x+1,y+1)ϕ(u,v+1)=f(x−1,y+1)ϕ(u−1,v)=f(x−1,y−1)ϕ(u,v−1)=f(x+1,y−1)\begin{aligned} &\phi(u+1,v)=f(x+1,y+1)\\ &\phi(u,v+1)=f(x-1,y+1)\\ &\phi(u-1,v)=f(x-1,y-1)\\ &\phi(u,v-1)=f(x+1,y-1)\\ \end{aligned} ​ϕ(u+1,v)=f(x+1,y+1)ϕ(u,v+1)=f(x−1,y+1)ϕ(u−1,v)=f(x−1,y−1)ϕ(u,v−1)=f(x+1,y−1)​
由此我们可以得到新的拉普拉斯算子如下:
∇×2ϕ=∂2ϕ∂u2+∂2ϕ∂v2\nabla_{\times}^{2} \phi=\frac{\partial^{2} \phi}{\partial u^{2}}+\frac{\partial^{2} \phi}{\partial v^{2}} ∇×2​ϕ=∂u2∂2ϕ​+∂v2∂2ϕ​
利用导数定义分别对∂2ϕ∂u2,∂2ϕ∂v2\frac{\partial^{2} \phi}{\partial u^{2}},\frac{\partial^{2} \phi}{\partial v^{2}}∂u2∂2ϕ​,∂v2∂2ϕ​进行化简可以得到:
∂2ϕ∂u2=limh→0∂ϕ(u+h,v)∂u−∂ϕ(u−h,v)∂u2h=limh→0ϕ(u+h,v)−ϕ(u,v)h−ϕ(u,v)−ϕ(u−h,v)h2h=limh→0ϕ(u+h,v)+ϕ(u−h,v)−2ϕ(u,v)2h2∂2ϕ∂v2=limh→0∂ϕ(u,v+h)∂v−∂ϕ(u,v−h)∂v2h=limh→0ϕ(u,v+h)−ϕ(u,v)h−ϕ(u,v)−ϕ(u,v−h)h2h=limh→0ϕ(u,v+h)+ϕ(u,v−h)−2ϕ(u,v)2h2\begin{aligned} \frac{\partial^{2} \phi}{\partial u^{2}} &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\partial \phi(u+h, v)}{\partial u}-\frac{\partial \phi(u-h, v)}{\partial u}}{2h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\phi(u+h, v)-\phi(u, v)}{h}-\frac{\phi(u, v)-\phi(u-h, v)}{h}}{2h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\phi(u+h, v)+\phi(u-h, v)-2\phi(u,v)}{2h^2}\\ \frac{\partial^{2} \phi}{\partial v^{2}} &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\partial \phi(u, v+h)}{\partial v}-\frac{\partial \phi(u, v-h)}{\partial v}}{2h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\frac{\phi(u, v+h)-\phi(u, v)}{h}-\frac{\phi(u, v)-\phi(u, v-h)}{h}}{2h}\\ &=\mathop{lim}\limits_{h \rightarrow 0}\frac{\phi(u, v+h)+\phi(u, v-h)-2\phi(u,v)}{2h^2}\\ \end{aligned} ∂u2∂2ϕ​∂v2∂2ϕ​​=h→0lim​2h∂u∂ϕ(u+h,v)​−∂u∂ϕ(u−h,v)​​=h→0lim​2hhϕ(u+h,v)−ϕ(u,v)​−hϕ(u,v)−ϕ(u−h,v)​​=h→0lim​2h2ϕ(u+h,v)+ϕ(u−h,v)−2ϕ(u,v)​=h→0lim​2h∂v∂ϕ(u,v+h)​−∂v∂ϕ(u,v−h)​​=h→0lim​2hhϕ(u,v+h)−ϕ(u,v)​−hϕ(u,v)−ϕ(u,v−h)​​=h→0lim​2h2ϕ(u,v+h)+ϕ(u,v−h)−2ϕ(u,v)​​
令h=2h=\sqrt{2}h=2​可以得到以下形式。
∇×2≈ϕ(u+1,v)+ϕ(u−1,v)+ϕ(u,v+1)+ϕ(u,v−1)4−ϕ(u,v)=f(x+1,y+1)+f(x−1,y−1)+f(x−1,y+1)+f(x+1,y−1)2−2f(x,y)\begin{aligned} \nabla_{\times}^{2} &\approx \frac{\phi(u+1, v)+\phi(u-1, v)+\phi(u, v+1)+\phi(u, v-1)}{4}- \phi(u, v) \\ &=\frac{f(x+1, y+1)+f(x-1, y-1)+f(x-1, y+1)+f(x+1, y-1)}{2}-2 f(x, y) \end{aligned} ∇×2​​≈4ϕ(u+1,v)+ϕ(u−1,v)+ϕ(u,v+1)+ϕ(u,v−1)​−ϕ(u,v)=2f(x+1,y+1)+f(x−1,y−1)+f(x−1,y+1)+f(x+1,y−1)​−2f(x,y)​
将其表示为卷积核的形式,可以得到:
∇×2=[0.500.50−200.500.5]\nabla_{\times}^{2}=\left[\begin{array}{ccc} 0.5 & 0 & 0.5 \\ 0 & -2 & 0 \\ 0.5 & 0 & 0.5 \end{array}\right] ∇×2​=⎣⎡​0.500.5​0−20​0.500.5​⎦⎤​
进行组合可以得到:
∇γ2=(1−γ)∇d2+γ∇×2=(1−γ)[0101−41010]+γ[0.500.50−200.500.5]\nabla_{\gamma}^{2}=(1-\gamma) \nabla_{d}^{2}+\gamma \nabla_{\times}^{2}=(1-\gamma)\left[\begin{array}{ccc} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{array}\right]+\gamma\left[\begin{array}{ccc} 0.5 & 0 & 0.5 \\ 0 & -2 & 0 \\ 0.5 & 0 & 0.5 \end{array}\right] ∇γ2​=(1−γ)∇d2​+γ∇×2​=(1−γ)⎣⎡​010​1−41​010​⎦⎤​+γ⎣⎡​0.500.5​0−20​0.500.5​⎦⎤​
其中λ∈[0,1]\lambda \in [0,1]λ∈[0,1]

将两个矩阵相加可以得到:
∇γ2=[0.5λ1−λ0.5λ1−λ2λ−41−λ0.5λ1−λ0.5λ]\nabla^{2}_{\gamma}=\left[\begin{array}{ccc} 0.5 \lambda & 1-\lambda & 0.5 \lambda \\ 1-\lambda & 2 \lambda-4 & 1-\lambda \\ 0.5 \lambda & 1-\lambda & 0.5 \lambda \end{array}\right] ∇γ2​=⎣⎡​0.5λ1−λ0.5λ​1−λ2λ−41−λ​0.5λ1−λ0.5λ​⎦⎤​
令λ=2a1+a\lambda=\frac{2a}{1+a}λ=1+a2a​,我们可以对上述式子进行化简,得到:
∇2=11+a[a1−aa1−a−41−aa1−aa]\nabla^{2}=\frac{1}{1+a}\left[\begin{array}{ccc} a & 1-a & a \\ 1-a & -4 & 1-a \\ a & 1-a & a \end{array}\right] ∇2=1+a1​⎣⎡​a1−aa​1−a−41−a​a1−aa​⎦⎤​

高斯拉普拉斯算子的推导

高斯函数如下:
Gσ(x,y)=12πσ2exp⁡(−x2+y22σ2)G_{\sigma}(x, y)=\frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(-\frac{x^{2}+y^{2}}{2 \sigma^{2}}\right) Gσ​(x,y)=2πσ2​1​exp(−2σ2x2+y2​)

由于原图像可能存在噪声,所以需要先对图像进行高斯卷积再进行拉普拉斯变换:
∇2[Gσ(x,y)∗f(x,y)]=[∇2Gσ(x,y)]∗f(x,y)=LoG∗f(x,y)\nabla^{2}\left[G_{\sigma}(x, y) * f(x, y)\right]=\left[\nabla^{2} G_{\sigma}(x, y)\right] * f(x, y)=L o G * f(x, y) ∇2[Gσ​(x,y)∗f(x,y)]=[∇2Gσ​(x,y)]∗f(x,y)=LoG∗f(x,y)
由于卷积操作满足以下性质:
ddt[h(t)∗f(t)]=ddt∫f(τ)h(t−τ)dτ=∫f(τ)ddth(t−τ)dτ=f(t)∗ddth(t)\frac{d}{d t}[h(t) * f(t)]=\frac{d}{d t} \int f(\tau) h(t-\tau) d \tau=\int f(\tau) \frac{d}{d t} h(t-\tau) d \tau=f(t) * \frac{d}{d t} h(t) dtd​[h(t)∗f(t)]=dtd​∫f(τ)h(t−τ)dτ=∫f(τ)dtd​h(t−τ)dτ=f(t)∗dtd​h(t)
因此,LogLogLog可以先对高斯函数进行偏导操作,然后进行卷积求解,公式表示如下:
∂∂xGσ(x,y)=∂∂xe−(x2+y2)/2σ2=−xσ2e−(x2+y2)/2σ2\frac{\partial}{\partial x} G_{\sigma}(x, y)=\frac{\partial}{\partial x} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}}=-\frac{x}{\sigma^{2}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}} ∂x∂​Gσ​(x,y)=∂x∂​e−(x2+y2)/2σ2=−σ2x​e−(x2+y2)/2σ2
求二阶导数可以得到:
∂2∂2xGσ(x,y)=x2σ4e−(x2+y2)/2σ2−1σ2e−(x2+y2)/2σ2=x2−σ2σ4e−(x2+y2)/2σ2\frac{\partial^{2}}{\partial^{2} x} G_{\sigma}(x, y)=\frac{x^{2}}{\sigma^{4}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}}-\frac{1}{\sigma^{2}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}}=\frac{x^{2}-\sigma^{2}}{\sigma^{4}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}} ∂2x∂2​Gσ​(x,y)=σ4x2​e−(x2+y2)/2σ2−σ21​e−(x2+y2)/2σ2=σ4x2−σ2​e−(x2+y2)/2σ2
同理可得:
∂2∂2yGσ(x,y)=y2−σ2σ4e−(x2+y2)/2σ2\frac{\partial^{2}}{\partial^{2} y} G_{\sigma}(x, y)=\frac{y^{2}-\sigma^{2}}{\sigma^{4}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}} ∂2y∂2​Gσ​(x,y)=σ4y2−σ2​e−(x2+y2)/2σ2
综上所述,可以得到LoGLoGLoG的定义如下:
LoG≜∇2Gσ(x,y)=∂2∂x2Gσ(x,y)+∂2∂y2Gσ(x,y)=x2+y2−2σ2σ4e−(x2+y2)/2σ2Lo G \triangleq \nabla^{2} G_{\sigma}(x, y)=\frac{\partial^{2}}{\partial x^{2}} G_{\sigma}(x, y)+\frac{\partial^{2}}{\partial y^{2}} G_{\sigma}(x, y)=\frac{x^{2}+y^{2}-2 \sigma^{2}}{\sigma^{4}} e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}} LoG≜∇2Gσ​(x,y)=∂x2∂2​Gσ​(x,y)+∂y2∂2​Gσ​(x,y)=σ4x2+y2−2σ2​e−(x2+y2)/2σ2
2维高斯拉普拉斯算子可以通过任何一个方形核进行逼近,只要保证该核的所有元素的和或均值为0,如下一个5×5的核进行逼近:
[001000121012−16210121000100]\left[\begin{array}{ccccc} 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 2 & 1 & 0 \\ 1 & 2 & -16 & 2 & 1 \\ 0 & 1 & 2 & 1 & 0 \\ 0 & 0 & 1 & 0 & 0 \end{array}\right] ⎣⎢⎢⎢⎢⎡​00100​01210​12−1621​01210​00100​⎦⎥⎥⎥⎥⎤​
图像中的边缘检测可以使用以下步骤:

  • 将 LoG 应用于图像
  • 图像中过零点的检测
  • 阈值的过零点只保留那些强的(正极大值与负极小值之间差别很大)

离散拉普拉斯算子与LOG推导相关推荐

  1. Laplace(拉普拉斯)算子

    目录 拉普拉斯算子 高斯-拉普拉斯算子 拉普拉斯算子 Laplace算子作为边缘检测之一,和Sobel算子一样也是工程数学中常用的一种积分变换,属于空间锐化滤波操作.拉普拉斯算子(Laplace Op ...

  2. 图像处理中的拉普拉斯算子

    图像处理中的拉普拉斯算子 (2010-03-10 20:44:14) 转载▼ 标签: 算子 拉普拉斯变换 灰度 图像 杂谈 分类:图像处理 1.基本理论 拉普拉斯算子是最简单的各向同性微分算子,具有旋 ...

  3. MATLAB - 拉普拉斯算子可视化

    1.拉普拉斯算子∇2\nabla^ 2∇2 拉普拉斯算子有很多用途,在物理中常用于波动方程.热传导方程和亥姆霍兹方程的数学模型:在静电学中,拉普拉斯方程和泊松方程的应用随处可见:在数学中,经拉普拉斯算 ...

  4. 拉普拉斯算子原理 图像增强

    数学基础 拉普拉斯算子,二阶微分线性算子,为什么上来就学二阶微分算子,前文说过,与一阶微分相比,二阶微分的边缘定位能力更强,锐化效果更好,所以我们来先学习二阶微分算子,使用二阶微分算子的基本方法是定义 ...

  5. 拉普拉斯算子原理 图像增强

    转自:https://blog.csdn.net/huang1024rui/article/details/46537205 数学基础 拉普拉斯算子,二阶微分线性算子,为什么上来就学二阶微分算子,前文 ...

  6. 二阶微分算子-拉普拉斯算子

    在前面博客结尾,我们简要谈了一下二阶微分算子:对于图像: 从上面可以看出 一阶微分算子,就是求图像灰度变化曲线的导数,能够突出图像中的对象边缘:二阶微分算子,求图像灰度变化导数的导数,对图像中灰度变化 ...

  7. c++ log函数_高斯拉普拉斯算子(Laplacian of Gaussian, LoG)

    一.简要描述: 拉普拉斯算子是图像二阶空间导数的二维各向同性测度.拉普拉斯算子可以突出图像中强度发生快速变化的区域,因此常用在边缘检测任务当中.在进行Laplacian操作之前通常需要先用高斯平滑滤波 ...

  8. 用拉普拉斯变换求零状态响应_高斯拉普拉斯算子(Laplacian of Gaussian, LoG)

    一.简要描述: 拉普拉斯算子是图像二阶空间导数的二维各向同性测度.拉普拉斯算子可以突出图像中强度发生快速变化的区域,因此常用在边缘检测任务当中.在进行Laplacian操作之前通常需要先用高斯平滑滤波 ...

  9. python 图像处理 拉普拉斯算子的实现和改进-LoG和DoG算子

    拉普拉斯算子 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性. 我们经常把它作为边缘检测之一,也是工程数学中常用的一种积分变换,也可以用于图像增强.角点检测等等. 这里只给出它的代码,原理可 ...

最新文章

  1. leveldb源码分析:数据插入续(跳表)
  2. android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  3. WebDriver介绍
  4. 此 sqltransaction 已完成;它再也无法使用_win10笔记本自带office报错无法激活的解决方法...
  5. linux查看进程打开的句柄数,【转】Linux下查看进程打开的文件句柄数
  6. 微信微调助手WeChatTweak for mac(微信多开和防撤回工具)最新版
  7. FE File Explorer Pro for mac(文件管理器)
  8. 聚类算法Kmens和密度峰值聚类
  9. Golang工程师历年企业笔试真题汇总
  10. AI从零开始之我们为什么要为了那个虚无缥缈的f而奋斗
  11. PS2接口键盘、鼠标改成USB接口
  12. 斐讯n1盒子装网易音乐命令版
  13. 显著图(Saliency map)
  14. 长铗、孔剑平、何斌等17位大咖齐聚,一部区块链创业者的“燃点”
  15. Windows 7 中文版命令行如何修改字符编码为UTF-8?
  16. scrapy 项目实战(一)----爬取雅昌艺术网数据
  17. 人生十鉴:大喜易失言,大哀易失值
  18. 浅析HTML5中标签del和ins以及HTML5中被舍弃的标签
  19. android10 p20pro,客观数据告诉你华为p20 pro的拍照到底什么水平
  20. epup php7_PHP 7底层设计与源码实现

热门文章

  1. 计算机丢失系统文件如何找回,电脑系统文件丢失怎么办
  2. ssm+Vue计算机毕业设计在线答题系统(程序+LW文档)
  3. 加强统筹布局和顶层设计,以技能、平台、应用为三大着力点推动人工智能突破发展...
  4. 101.新拟物渐变加载特效
  5. C语言实现LDPC的校验矩阵,非正则LDPC码在AWGN信道中的性能研究
  6. 面向对象的讨论-2022年5月4日
  7. css布局:table布局、两栏布局、三栏布局
  8. Windows GDI 窗口与 Direct3D 屏幕截图
  9. 6、FFmpeg 视频处理
  10. office 文档在线预览新姿势之永中云转换