01_Machine Vision_LSI及傅立叶变换

outline

  • 图像分解和线性时不变系统
  • 二维傅立叶变换
  • 图像采样

图像分解和线性时不变系统

图像数学表达

图像由基本的像素点组成,如果将每一个像素点看作一个脉冲,则每个像素点的值可以看作是脉冲的幅值,这样图像就可以看作是由一系列脉冲组成的。

单个像素点的数学表达式:

f ( i , j ) = A δ ( x − i , y − j ) f(i,j) = A\delta(x-i,y-j) f(i,j)=Aδ(xi,yj)

其中,A是像素点的幅值, δ ( x − x 0 , y − y 0 ) \delta(x-x_0,y-y_0) δ(xx0,yy0)是二维脉冲函数,表示在 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)处的脉冲。

则图像可表示为一些列脉冲的叠加,其数学表达式:

f ( x , y ) = ∑ i = 1 N ∑ j = 1 N f ( i , j ) δ ( x − i , y − i ) f(x,y) = \sum_{i=1}^{N} \sum_{j=1}^{N} f(i,j)\delta(x-i,y-i) f(x,y)=i=1Nj=1Nf(i,j)δ(xi,yi)

其中,N是图像中的像素点个数,A_i是第i个像素点的幅值, ( x i , y i ) (x_i,y_i) (xi,yi)是第i个像素点的坐标。

图像处理系统

f ( x , y ) → image processing T → g ( x , y ) \ f(x,y) \rightarrow \begin{array}{|c|} \hline \text{image processing T} \\ \hline \end{array} \rightarrow g(x,y)  f(x,y)image processing Tg(x,y)

其中,f(x,y)是输入图像,g(x,y)是输出图像, T是图像处理系统.
所以数学表达式为:

g ( x , y ) = T [ f ( x , y ) ] = T [ ∑ i = 1 N ∑ j = 1 N f ( i , j ) δ ( x − i , y − i ) ] g(x,y) = T[f(x,y)] = T\left[\sum_{i=1}^{N} \sum_{j=1}^{N} f(i,j)\delta(x-i,y-i)\right] g(x,y)=T[f(x,y)]=T[i=1Nj=1Nf(i,j)δ(xi,yi)]

如果T是线性的,则有:

g ( x , y ) = ∑ i = 1 N ∑ j = 1 N f ( i , j ) T [ δ ( x − i , y − i ) ] g(x,y) = \sum_{i=1}^{N} \sum_{j=1}^{N} f(i,j)T[\delta(x-i,y-i)] g(x,y)=i=1Nj=1Nf(i,j)T[δ(xi,yi)]

h ( x , y ) = T [ δ ( x , y ) ] h(x,y) = T[\delta(x,y)] h(x,y)=T[δ(x,y)],即为T的冲激响应。
如果T是时不变系统,则h(x,y)是固定的,不随输入的位置变化,可以在整个空间内平移。则有:

g ( x , y ) = ∑ i = 1 N ∑ j = 1 N f ( i , j ) h ( x − i , y − i ) = f ( x , y ) ∗ h ( x , y ) g(x,y) = \sum_{i=1}^{N} \sum_{j=1}^{N} f(i,j)h(x-i,y-i)=f(x,y)*h(x,y) g(x,y)=i=1Nj=1Nf(i,j)h(xi,yi)=f(x,y)h(x,y)

  • 只用时不变系统才能用卷积计算,时不变系统指的是输入信号发生平易,输出信号也发生平移,不会因位置的不同而产生额外的变化。

T { δ ( x − i , y − j ) } = h ( x − i , y − j ) T \{\delta(x-i,y-j)\} = h(x-i,y-j) T{δ(xi,yj)}=h(xi,yj)

  • h(x,y)也就是滤波器,是固定的,不随输入的位置变化,则其在空间内平移就可以计算图像输出,而不需要做额外的变化。
  • 如果h(x,y)是变化的,则在不同的位置输出不一样,不能用单一的h(x,y)来计算输出。

二维傅立叶变换

傅立叶变换为将信号从时域转化为频域。其核心思想是将一个信号分解为不同频率的正弦波叠加。其视觉呈现可参考3B1B的视频。
https://www.youtube.com/watch?v=spUNpyF58BY&t=441s

基础公式
  • 欧拉公式:
    e i θ = cos ⁡ θ + i sin ⁡ θ e^{i\theta} = \cos\theta + i\sin\theta eiθ=cosθ+isinθ
  • 连续傅立叶变换:
    F ( u , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( x , y ) e − i 2 π ( u x + v y ) d x d y F(u,v) = \int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(x,y)e^{-i2\pi(ux+vy)}dxdy F(u,v)=f(x,y)ei2π(ux+vy)dxdy
  • 离散傅立叶变换:
    F ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − i 2 π ( u x / M + v y / N ) F(u,v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-i2\pi(ux/M+vy/N)} F(u,v)=x=0M1y=0N1f(x,y)ei2π(ux/M+vy/N)
  • 逆傅立叶变换:
    f ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ F ( u , v ) e i 2 π ( u x + v y ) d u d v f(x,y) = \int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F(u,v)e^{i2\pi(ux+vy)}dudv f(x,y)=F(u,v)ei2π(ux+vy)dudv
  • 离散傅立叶变换的逆变换:
    f ( x , y ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e i 2 π ( u x / M + v y / N ) f(x,y) = \frac{1}{MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{i2\pi(ux/M+vy/N)} f(x,y)=MN1u=0M1v=0N1F(u,v)ei2π(ux/M+vy/N)
  • 傅立叶变换具有可分离性,即:
    F ( u , v ) = ∫ − ∞ ∞ [ ∫ − ∞ ∞ f ( x , y ) e − i 2 π v y d y ] e − i 2 π u x d x = ∫ − ∞ ∞ F x ( u , y ) e − i 2 π u x d x F(u,v) = \int_{-\infty}^{\infty}\left[\int_{-\infty}^{\infty}f(x,y)e^{-i2\pi vy}dy\right]e^{-i2\pi ux}dx = \int_{-\infty}^{\infty}F_x(u,y)e^{-i2\pi ux}dx F(u,v)=[f(x,y)ei2πvydy]ei2πuxdx=Fx(u,y)ei2πuxdx
  • 离散傅立叶变换的可分离性:
    F ( u , v ) = 1 M N ∑ x = 0 M − 1 [ ∑ y = 0 N − 1 f ( x , y ) e − i 2 π v y / N ] e − i 2 π u x / M = 1 M ∑ x = 0 M − 1 F x ( u , y ) e − i 2 π u x / M F(u,v) = \frac{1}{MN}\sum_{x=0}^{M-1}\left[\sum_{y=0}^{N-1}f(x,y)e^{-i2\pi vy/N}\right]e^{-i2\pi ux/M} = \frac{1}{M}\sum_{x=0}^{M-1}F_x(u,y)e^{-i2\pi ux/M} F(u,v)=MN1x=0M1[y=0N1f(x,y)ei2πvy/N]ei2πux/M=M1x=0M1Fx(u,y)ei2πux/M
DFT 性质

傅立叶变换得到的频谱图像是复数,通常用幅度谱和相位谱来表示,幅度谱是复数的模,相位谱是复数的辐角。数学表达:

F ( u , v ) = R ( u , v ) + j I ( u , v ) = ∣ F ( u , v ) ∣ e i θ ( u , v ) F(u,v) = R(u,v) + jI(u,v)= |F(u,v)|e^{i\theta(u,v)} F(u,v)=R(u,v)+jI(u,v)=F(u,v)eiθ(u,v)

其中:

∣ F ( u , v ) ∣ = R 2 ( u , v ) + I 2 ( u , v ) |F(u,v)| = \sqrt{R^2(u,v) + I^2(u,v)} F(u,v)=R2(u,v)+I2(u,v)

θ ( u , v ) = arctan ⁡ ( I ( u , v ) R ( u , v ) ) \theta(u,v) = \arctan\left(\frac{I(u,v)}{R(u,v)}\right) θ(u,v)=arctan(R(u,v)I(u,v))

在图像应用中,通常用幅度谱来表示频谱图像,因为幅度谱包含了图像的主要信息,而相位谱则包含了图像的细节信息。

  • 周期性
    F ( u , v ) = F ( u + m , v ) = F ( u , v + n ) F(u,v) = F(u+m,v) = F(u,v+n) F(u,v)=F(u+m,v)=F(u,v+n)
  • 共轭对称性
    F ( u , v ) = F ∗ ( − u , − v ) F(u,v) = F^*(-u,-v) F(u,v)=F(u,v)
  • 线性性
    a F 1 ( u , v ) + b F 2 ( u , v ) = F ( a u , v ) + F ( b u , v ) aF_1(u,v) + bF_2(u,v) = F(au,v) + F(bu,v) aF1(u,v)+bF2(u,v)=F(au,v)+F(bu,v)
  • 卷积
    f ( x , y ) ∗ g ( x , y ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( α , β ) g ( x − α , y − β ) d α d β f ( x , y ) ∗ g ( x , y ) ⟺ F ( u , v ) G ( u , v ) f ( x , y ) g ( x , y ) ⟺ F ( u , v ) ∗ G ( u , v ) f(x,y) * g(x,y) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} f(\alpha, \beta) g(x - \alpha, y - \beta) d\alpha d\beta \\ f(x,y) * g(x,y) \iff F(u,v) G(u,v) \\ f(x,y) g(x,y) \iff F(u,v) * G(u,v) f(x,y)g(x,y)=f(α,β)g(xα,yβ)dαdβf(x,y)g(x,y)F(u,v)G(u,v)f(x,y)g(x,y)F(u,v)G(u,v)
  • 旋转

x = r cos ⁡ θ , y = r sin ⁡ θ , u = ω cos ⁡ φ , v = ω sin ⁡ φ f ( r , θ + θ 0 ) ⟺ F ( ω , φ + θ 0 ) x = r \cos \theta, \quad y = r \sin \theta, \quad u = \omega \cos \varphi, \quad v = \omega \sin \varphi \\ f(r, \theta + \theta_0) \iff F(\omega, \varphi + \theta_0) x=rcosθ,y=rsinθ,u=ωcosφ,v=ωsinφf(r,θ+θ0)F(ω,φ+θ0)

  • 旋转不变性

g ( u , v ) = 1 π ∫ 0 2 π ∫ 0 1 e − j ( 2 π u r 2 + v θ ) f ( r , θ ) d r d θ g(u,v) = \frac{1}{\pi} \int_0^{2\pi} \int_0^1 e^{-j(2\pi ur^2 + v\theta)} f(r, \theta) dr d\theta g(u,v)=π102π01ej(2πur2+vθ)f(r,θ)drdθ

zero padding

zero padding 主要是为了要解决周期性混叠以及循环卷积的问题。采样定理是解决信号混叠的问题,不能解决循环卷积以及周期性混叠的问题。

首先要了解周期延拓的概念:在DFT变换时,隐式的认为信号是无限重复的。

因为信号是无限周期重复的,所以在做卷积运算时,当计算至数据的末尾时,会将下一个周期的头部数据纳入计算,出现循环卷积的现象。

在这里插入图片描述正是因为这种计算方式,导致可能会将图片的左边和右边混在一起。所以需要在图片两边做zero padding.

  • zero padding 的尺寸
    • DFT 计算一维信号时,如果有2个信号分别为 N 和 M,那么需要做 zero padding 到 N+M-1 的尺寸
    • DFT 计算二维信号时,如果有2个信号分别为 NxM 和 PxQ,那么需要做 zero padding 到 (N+P-1)x(M+Q-1) 的尺寸
为什么滤波用DFT, 而图像压缩用DCT?
  • DFT 计算为复数,可以同时表示信号的幅度和相位信息,便于详细的滤波处理。
  • DCT 计算为实数,减少了存储和计算的复杂性。
  • DCT 变换后大多数的能量集中在低频信号,更符合人眼的视觉特性。

图像采样

连续信号 $ f_c(x,y)$ 转化为 f d ( x , y ) f_d(x,y) fd(x,y) 需要经过以下两步:

  • 采样 Sampling
    采样主要是将连续的 ( x , y ) (x,y) (x,y)转化为离散的 ( m , n ) (m,n) (m,n),决定图片的分辨率,决定了图片保留的信息。如果采样不足,会产生不可逆的信息丢失。
  • 量化 Quantization
    量化主要是针对 f d ( m , n ) f_d(m,n) fd(m,n)量化,将其映射到有限的灰度级上。主要决定了灰度的精度以及视觉效果。

综上:采样过程影响的更大。所以重点关注采样过程。

采样过程

真实世界的信号一般都是带限信号(band-limited)即:

F ( u , v ) = 0 , for ∣ u ∣ > U 0 or ∣ v ∣ > V 0 F(u,v) = 0, \quad \text{for} \quad |u| > U_0 \quad \text{or} \quad |v| > V_0 F(u,v)=0,foru>U0orv>V0

其中, U 0 U_0 U0 V 0 V_0 V0是带限信号的最大频率。

针对真实信号的采样函数为:

s ( x , y ) = ∑ k = − ∞ ∞ ∑ l = − ∞ ∞ δ ( x − m Δ x , n − Δ y ) s(x,y) = \sum_{k=-\infty}^{\infty} \sum_{l=-\infty}^{\infty} \delta(x-m \Delta x,n-\Delta y) s(x,y)=k=l=δ(xmΔx,nΔy)

其傅立叶变换为:

S ( u , v ) = 1 Δ x Δ y ∑ k = − ∞ ∞ ∑ l = − ∞ ∞ δ ( u − k Δ x , v − l Δ y ) S(u,v) = \frac{1}{\Delta x \Delta y} \sum_{k=-\infty}^{\infty} \sum_{l=-\infty}^{\infty} \delta(u-\frac{k}{\Delta x},v-\frac{l}{\Delta y}) S(u,v)=ΔxΔy1k=l=δ(uΔxk,vΔyl)

故连续信号 f ( x , y ) f(x,y) f(x,y) 转换为离散信号可以表示为:

f d ( x , y ) = f c ( x , y ) s ( x , y ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ f c ( m Δ x , n Δ y ) δ ( x − m Δ x , y − n Δ y ) \textcolor{red}{f_d(x, y)} = f_c(x,y) s(x,y) = \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \textcolor{blue}{f_c(m\Delta x, n\Delta y)} \delta(x - m\Delta x, y - n\Delta y) fd(x,y)=fc(x,y)s(x,y)=m=n=fc(mΔx,nΔy)δ(xmΔx,ynΔy)

其傅立叶变换为:

F d ( u , v ) = F c ( u , v ) ∗ S ( u , v ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ F c ( u − m Δ x , v − n Δ y ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ F c ( u − m f x s , v − n f y s ) \textcolor{red}{F_d(u, v)} = F_c(u,v) * S(u,v) = \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} F_c(u-\frac{m}{\Delta x},v-\frac{n}{\Delta y}) = \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} F_c(u - mf_{xs},v - nf_{ys}) Fd(u,v)=Fc(u,v)S(u,v)=m=n=Fc(uΔxm,vΔyn)=m=n=Fc(umfxs,vnfys)

可以得到其以 ( 1 Δ x , 1 Δ y ) (\frac{1}{\Delta x}, \frac{1}{\Delta y}) (Δx1,Δy1)为周期的周期延拓. 故若不想出现频率混叠,且已知 U 0 U_0 U0 V 0 V_0 V0是带限信号的最大频率,则有:

f x s = 1 Δ x ≥ 2 U 0 , f y s = 1 Δ y ≥ 2 V 0 f_{xs} =\frac{1}{\Delta x}\geq 2U_0, f_{ys} = \frac{1}{\Delta y}\geq 2V_0 fxs=Δx12U0,fys=Δy12V0

其中$ \frac{1}{2U_0} 和 和 \frac{1}{2V_0}$分别为Nyquist间隔。上述不等式即描述采样定理。若满足上述不等式,即可不丢失信息的情况下对信号进行采样。

恢复原始信号

可以应用理想低通滤波器恢复原始信号:

H ( u , v ) = { Δ x Δ y , ( u , v ) ∈ ( − U 0 , U 0 ) × ( − V 0 , V 0 ) 0 , others H(u,v)=\left\{ \begin{array}{ll} \Delta x\Delta y, & (u,v) \in (-U_0, U_0) \times (-V_0, V_0)\\ 0, & \text{others} \end{array} \right. H(u,v)={ΔxΔy,0,(u,v)(U0,U0)×(V0,V0)others

其恢复的信号为:

f c ( x , y ) = h ( x , y ) ∗ f d ( x , y ) = h ( x , y ) ∗ ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ f c ( m Δ x , n Δ y ) δ ( x − m Δ x , y − n Δ y ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ f c ( m Δ x , n Δ y ) h ( x , y ) ∗ δ ( x − m Δ x , y − n Δ y ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ f c ( m Δ x , n Δ y ) h ( x − m Δ x , y − n Δ y ) = ∑ m = − ∞ ∞ ∑ n = − ∞ ∞ f d ( m , n ) h ( x − m Δ x , y − n Δ y ) \begin{aligned} f_c(x,y) &= h(x,y) * \textcolor{red}{f_d(x,y)} \\ &= h(x,y) * \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \textcolor{blue}{f_c(m\Delta x, n\Delta y)} \delta(x - m\Delta x, y - n\Delta y) \\ &= \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \textcolor{blue}{f_c(m\Delta x, n\Delta y)} h(x,y) * \delta(x - m\Delta x, y - n\Delta y) \\ &= \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \textcolor{blue}{f_c(m\Delta x, n\Delta y)} h(x - m\Delta x, y - n\Delta y) \\ &= \sum_{m=-\infty}^{\infty} \sum_{n=-\infty}^{\infty} \textcolor{green}{f_d(m,n)} h(x - m\Delta x, y - n\Delta y) \end{aligned} fc(x,y)=h(x,y)fd(x,y)=h(x,y)m=n=fc(mΔx,nΔy)δ(xmΔx,ynΔy)=m=n=fc(mΔx,nΔy)h(x,y)δ(xmΔx,ynΔy)=m=n=fc(mΔx,nΔy)h(xmΔx,ynΔy)=m=n=fd(m,n)h(xmΔx,ynΔy)

综上:若想避免混叠,可以在采样前先对原始图像 f c ( x , y ) f_c(x,y) fc(x,y)进行低通滤波,使其带宽小于采样频率,避免混叠。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch实战三 elasticsearch与mysql数据实时同步

一 介绍 elasticsearch数据不是一直不变的,需要与mysql、oracle等数据库的数据做同步。 本博客里涉及到的项目地址:https://www.aliyundrive.com/s/7bRWpTYsxWV 方案一: 同步调用,即操作mysql数据后,接着操作elastic…

智能化食品安全管理:AI视频监控在大型商场的技术方案

前言 在卖场中,尤其是熟食区,AI视频监控的应用对于食品安全至关重要。通过AI视频监控系统,卖场可以实时监测食品处理环节中的每一个细节,从员工的个人防护到清洁操作,再到区域管理,全面提升食品安全管理的…

分析模式应用――帐务模式02

Party 模式中的层次结构模型支持多种灵活的层次结构,但这里我们只要关心上下级的包含关系就可以了,参加结算的称为结算实体BalanceEntity, 不可再拆分的称为LeafEntity, 可以包含下级结算实体的称为CompositeEntity,因…

什么是网络安全

1) 什么是网络安全 作为程序员,主要是面向产品的安全的问题。比如sql注入,xss,csrf,cookie窃取等等,都值得我们去思考。保证网站运行正常,客户数据安全。 2) sql注入 简单的说,就是利用表单提…

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步,测试方法也在演变。企业需要紧跟新兴趋势,以提升软件质量、提高测试效率,并确保安全性,在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…

等级保护2.0|网络安全服务

等级保护2.0|网络安全服务 定义 对于国家秘密信息、法人和其他组织及公民专有信息以及公开信息的存储、传输、处理这些信息系统分等级实行安全保护,对信息系统中发生的信息安全时间分等级响应、处置。 思想 对信息安全实行等级化保护和等级化管理 目标 突出重…

Spatial Branching for Conic Non-Convexities in Optimal Electricity-Gas Flow

摘要—本文提出了一种基于几何的空间分支策略( spatial branching strategy),用于解决集成电力-燃气系统中的圆锥非凸方程( conic non-convex equations)。所提出的策略嵌入在空间分支定界算法中,以求解最优…

ChunkKV:优化 KV 缓存压缩,让 LLM 长文本推理更高效

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

IDEA编写SpringBoot项目时使用Lombok报错“找不到符号”的原因和解决

目录 概述|背景 报错解析 解决方法 IDEA配置解决 Pom配置插件解决 概述|背景 报错发生背景:在SpringBoot项目中引入Lombok依赖并使用后出现"找不到符号"的问题。 本文讨论在上述背景下发生的报错原因和解决办法,如果仅为了解决BUG不论原…

【Redis】redis 存储的列表如何分页和检索

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

基于SpringBoot的线上历史馆藏管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

Redis持久化机制详解

为什么需要持久化 Redis通常被作为缓存使用,但是Redis一旦宕机,内存中的数据全部丢失,可能会导致数据库崩溃。如果是从数据库中恢复这些数据就会存在频繁访问数据库和读取速度慢的问题。所以redis实现数据的持久化,是至关重要的。…

代码随想录算法训练营day38

代码随想录算法训练营 —day38 文章目录 代码随想录算法训练营前言一、322. 零钱兑换二维dp数组 二、279.完全平方数二维dp数组 三、139. 单词拆分多重背包背包问题总结问题类型递推公式遍历顺序 前言 今天是算法营的第38天,希望自己能够坚持下来! 今日…

数据库高安全—审计追踪:传统审计统一审计

书接上文数据库高安全—角色权限:权限管理&权限检查,从权限管理和权限检查方面解读了高斯数据库的角色权限,本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…

【C++篇】 异常处理

目录 1,异常的概念及使用 1.1,异常的概念 1.2,异常的抛出和捕获 1.3,栈展开 1.4,异常的重新抛出 1.5,异常安全问题 1.6,异常规范 2,标准库中的异常 小结: 1&…

QT修仙之路1-1--遇见QT

文章目录 遇见QT二、QT概述2.1 定义与功能2.2 跨平台特性2.3 优点汇总 三、软件安装四、QT工具介绍(重要)4.1 Assistant4.2 Designer4.3 uic.exe4.4 moc.exe4.5 rcc.exe4.6 qmake4.7 QTcreater 五、QT工程项目解析(作业)5.1 配置文件(.pro)5.2 头文件&am…

python实现情绪识别模块,并将模块封装成可执行文件

目录: 1.源码:2.情绪识别模型运行流程:3.模型封装需要注意的地方:4.未解决问题: 1.源码: https://gitcode.com/xyint/deep_learning.git 2.情绪识别模型运行流程: 需要获取用户摄像头权限&…

网络防御高级02-综合实验

web页面: [FW]interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0]service-manage all permit 需求一,接口配置: SW2: [Huawei]sysname SW2 1.创建vlan [sw2]vlan 10 [sw2]vlan 20 2.接口配置 [sw2]interface GigabitEther…

Arbess基础教程-创建流水线

Arbess(谐音阿尔卑斯) 是一款开源免费的 CI/CD 工具,本文将介绍如何使用 Arbess 配置你的第一条流水线,以快速入门上手。 1. 创建流水线 根据不同需求来创建不同的流水线。 1.1 配置基本信息 配置流水线的基本信息,如分组,环境&…

MySQL下载过程

MySQL Enterprise Edition Downloads | Oracle mysql官方下载网址(9.2版本) 下面的示例是5.7的包,过程是一样的 port:3308(默认的是3306,笔者下了一个占用了该端口) root:123456 问题…