【计算机视觉】数字图像处理(四)—— 图像增强-程序员宅基地

技术标签: 计算机视觉  图像处理  人工智能  

图像增强的定义

图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。例如采用一系列技术有选择地突出某些感兴趣的信息,同时抑制一些不需要的信息,提高图像的使用价值。

图像增强方法

图像增强方法从增强的作用域出发,可分为空间域增强和频率域增强两种。

空间域增强是直接对图像各像素进行处理;

频率域增强是对图像经傅立叶变换后的频谱成分进行处理,然后逆傅立叶变换获得所需的图像。

注:傅立叶变换常用于将图像由空间域变换为频率域,详见:数字图像处理(三)—— 图像变换原理分析

在这里插入图片描述

一、图像增强的点运算

(一)灰度变换

灰度变换可调整图像的灰度动态范围或图像对比度,是图像增强的重要手段之一。

1. 线性变换

令图像f(i,j)的灰度范围为[a,b],线性变换后图像g(i,j)的范围为[a´,b´],如图,g(i,j)与f(i,j)之间的关系式为

在这里插入图片描述

在这里插入图片描述

曝光不足或过度的情况下图像灰度可能会局限在一个很小的范围内。这时在显示器上看到的将是一个模糊不清、似乎没有灰度层次的图像。
下图是对曝光不足的图像采用线性变换对图像每一个像素灰度作线性拉伸。可有效地改善图像视觉效果。

在这里插入图片描述

2. 分段线性变换

为了突出感兴趣目标所在的灰度区间,相对抑制那些不
感兴趣的灰度区间
,可采用分段线性变换。

设原图像 f ( x , y ) f(x,y) f(x,y) [ 0 , M f ] [0,M_f] [0Mf],感兴趣目标的灰度范围在 [ a , b ] [a,b] [a,b] ,欲使其灰度范围拉伸到 [ c , d ] [c,d] [c,d] ,则对应的分段线性变换表达式为

在这里插入图片描述

在这里插入图片描述
通过细心调整折线拐点的位置及控制分段直线的斜率,可对任一灰度区间进行拉伸或压缩

显示案例:

在这里插入图片描述

3. 非线性灰度变换

当用某些非线性函数如对数函数、指数函数等,作为映射函数时,可实现图像灰度的非线性变换。

对数变换

对数变换的一般表达式为

在这里插入图片描述

这里 a,b,c 是为了调整曲线的位置和形状而引入的参数。当希望对图像的低灰度区较大的拉伸而对高灰度区压缩时,可采用这种变换,它能使图像灰度分布与人的视觉特性相匹配

在这里插入图片描述

指数变换

指数变换的一般表达式为

在这里插入图片描述
这里参数a,b,c用来调整曲线的位置和形状。这种变换能对图像的高灰度区给予较大的拉伸

在这里插入图片描述

(二) 直方图修整法

灰度直方图反映了数字图像中每一灰度级与其出现频率间的关系,它能描述该图像的概貌。通过修改直方图的方法增强图像是一种实用而有效的处理技术。

直方图修整法包括直方图均衡化直方图规定化两类。

1. 直方图均衡化

直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。

在这里插入图片描述

设r和s分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。即

在这里插入图片描述

在[0,1]区间内的任一个r值,都可产生一个s值,且

在这里插入图片描述
T作为变换函数,满足下列条件:
① 在 0 ≤ r ≤ 1 0≤r≤1 0r1 内为单调递增函数,保证灰度级从黑到白的次序不变;
② 在 0 ≤ r ≤ 1 0≤r≤1 0r1 内,有 0 ≤ T ( r ) ≤ 1 0≤T(r)≤1 0T(r)1 ,确保映射后的像素灰度在允许的范围内。

反变换关系为
在这里插入图片描述

由概率论理论可知,如果已知随机变量r的概率密度为
p r ( r ) p_r(r) pr(r),而随机变量 s s s r r r 的函数,则 s s s 的概率密度 p s ( s ) p_s(s) ps(s)可以由 p r ( r ) p_r(r) pr(r)求出。

假定随机变量s的分布函数用 F s ( s ) F_s(s) Fs(s)表示,根据分布函数
定义

在这里插入图片描述

利用密度函数是分布函数的导数的关系,等式两边对s求导,有:

在这里插入图片描述

可见,输出图像的概率密度函数可以通过变换函数 T ( r ) T(r) T(r)控制原图像灰度级的概率密度函数得到,因而改善原图像的灰度层次,这就是直方图修改技术的基础。

从人眼视觉特性来考虑,一幅图像的直方图如果是均匀分布的,即 P s ( s ) = k P_s(s)=k Ps(s)=k (归一化时 k = 1 k=1 k=1 )时,该图像色调给人的感觉比较协调。因此将原图像直方图通过 T ( r ) T(r) T(r) 调整为均匀分布的直方图,这样修正后的图像能满足人眼视觉要求。

因为归一化假定

在这里插入图片描述

在这里插入图片描述
两边积分得

在这里插入图片描述
上式表明,当变换函数为r的累积直方图函数时,能达到直方图均衡化的目的。

对于离散的数字图像,用频率来代替概率,则变换函数 T ( r k ) T(r_k) T(rk) 的离散形式可表示为:

在这里插入图片描述
上式表明,均衡后各像素的灰度值 s k s_k sk 可直接由原图像的直方图算出

一幅图像的 s k s_k sk r k r_k rk 之间的关系称为该图像的累积灰度直方图。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

直方图均衡化示例

在这里插入图片描述

2. 直方图规定化

在某些情况下,并不一定需要具有均匀直方图的图像,有时需要具有特定的直方图的图像,以便能够增强图像中某些灰度级

直方图规定化方法就是针对上述思想提出来的。直方图规定化是使原图像灰度直方图变成规定形状的直方图而对图像作修正的增强方法。

可见,它是对直方图均衡化处理的一种有效的扩展。直方图均衡化处理是直方图规定化的一个特例。

对于直方图规定化,下面仍从灰度连续变化的概率密度函数出发进行推导,然后推广出灰度离散的图像直方图规定化算法。

假设 p r ( r ) p_r(r) pr(r) p z ( z ) p_z(z) pz(z) 分别表示已归一化的原始图像灰度分布的概率密度函数和希望得到的图像的概率密度函数

首先对原始图像进行直方图均衡化,即求变换函数:

在这里插入图片描述

假定已得到了所希望的图像,对它也进行均衡化处理,即

在这里插入图片描述

它的逆变换是

在这里插入图片描述

这表明可由均衡化后的灰度得到希望图像的灰度。
若对原始图像和希望图像都作了均衡化处理,则二者均衡化的 p s ( s ) p_s(s) ps(s) p v ( v ) p_v(v) pv(v) 相同,即都为均匀分布的密度函数。

s s s 代替 v v v z = G − 1 ( s ) z=G^{-1}(s) z=G1(s)

这就是所求得的变换表达式。根据上述思想,可总结出直方图规定化增强处理的步骤如下:

①对原始图像作直方图均衡化处理;
②按照希望得到的图像的灰度概率密度函数 p z ( z ) p_z(z) pz(z),求得变换函数 G ( z ) G(z) G(z)
③用步骤①得到的灰度级 s s s 作逆变换 z = G − 1 ( s ) z= G-1(s) z=G1(s)

经过以上处理得到的图像的灰度级将具有规定的概率密度函数 p z ( z ) p_z(z) pz(z)

采用与直方图均衡相同的原始图像数据(64×64 像素且具有8 级灰度),其灰度级分布列于表中。给定的直方图的灰度分布列于表中。 对应的直方图如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
利用直方图规定化方法进行图像增强的主要困难在于要构成有意义的直方图。图像经直方图规定化,其增强效果要有利于人的视觉判读或便于机器识别

在这里插入图片描述

图、 是将图像 (A) 按图 (b) 的直方图进行规定化得到的结果及其直方图。通过对比可以看出图 的对比度同

图(B) 接近一致,对应的直方图形状差异也不大。这样有利于影像融合处理,保证融合影像光谱特性变化小。

二、图像的空间域平滑

在这里插入图片描述

任何一幅原始图像,在其获取和传输等过程中,会受到各种噪声的干扰,使图像恶化,质量下降,图像模糊,特征淹没,对图像分析不利。

为了抑制噪声改善图像质量所进行的处理称图像平滑或去噪。它可以在空间域和频率域中进行。本节介绍空间域的几种平滑法。

(一)局部平滑法

局部平滑法是一种直接在空间域上进行平滑处理的技术。假设图像是由许多灰度恒定的小块组成,相邻像素间存在很高的空间相关性,而噪声则是统计独立的。因此,可用邻域内各像素的灰度平均值代替该像素原来的灰度值,实现图像的平滑。

设有一幅 N × N N×N N×N 的图像 f ( x , y ) f(x,y) f(x,y),若平滑图像为 g ( x , y ) g(x,y) g(x,y) ,则有

在这里插入图片描述
式中 x , y = 0 , 1 , … , N − 1 x,y = 0,1,…,N-1 x,y=0,1,,N1
s s s ( x , y ) (x,y) x,y邻域内像素坐标的集合;
M表示集合s内像素的总数。

可见邻域平均法就是将当前像素邻域内各像素的灰度平均值作为其输出值的去噪方法

例如,对图像采用 3 × 3 3×3 3×3 的邻域平均法,对于像素 ( m , n ) (m,n) m,n) ,其邻域像素如下:

在这里插入图片描述

在这里插入图片描述
其作用相当于用这样的模板同图像卷积

设图像中的噪声是随机不相关的加性噪声,窗口内各点噪声是独立同分布的,经过上述平滑后,信号与噪声的方差比可望提高M倍。

这种算法简单,但它的主要缺点是在降低噪声的同时使图像产生模糊,特别在边缘和细节处。而且邻域越大,在去噪能力增强的同时模糊程度越严重。

在这里插入图片描述

为克服简单局部平均法的弊病,目前已提出许多保边缘、细节的局部平滑算法。它们的出发点都集中在如何选择邻域的大小、形状和方向、参加平均的点数以及邻域各点的权重系数等,下面简要介绍几种算法。

1. 超限像素平滑法

对邻域平均法稍加改进,可导出超限像素平滑法。它是将 f ( x , y ) f(x,y) f(x,y) 和邻域平均 g ( x , y ) g(x,y) g(x,y) 差的绝对值与选定的阈值进行比较,根据比较结果决定点 ( x , y ) (x,y) x,y的最后灰度 g ´ ( x , y ) g´(x,y) g´(x,y)
其表达式为

在这里插入图片描述

这算法对抑制椒盐噪声比较有效,对保护仅有微小灰度差的细节及纹理也有效。可见随着邻域增大,去噪能力增强,但模糊程度也大。 同局部平滑法相比,超限像元平滑法去椒盐噪声效果更好

在这里插入图片描述

2. 灰度最相近的K个邻点平均法

该算法的出发点是:在n×n的窗口内,属于同一集合体的像素,它们的灰度值将高度相关。因此,可用窗口内与中心像素的灰度最接近的K个邻像素的平均灰度来代替窗口中心像素的灰度值。这就是灰度最相近的K个邻点平均法

较小的K值使噪声方差下降较小,但保持细节效果较好;而较大的K值平滑噪声较好,但会使图像边缘模糊。

实验证明,对于3×3的窗口,取K=6为宜。

3. 最大均匀性平滑

为避免消除噪声引起边缘模糊,该算法先找出环绕图像中每像素的最均匀区域,然后用这区域的灰度均值代替该像素原来的灰度值

在这里插入图片描述

4. 有选择保边缘平滑法

该方法对图像上任一像素 ( x , y ) (x,y) (x,y) 的5×5邻域,采用9个掩模,其中包括一个 3×3 正方形、4 个五边形和 4 个六边形。计算各个掩模的均值和方差,对方差进行排序,最小方差所对应的掩模区的灰度均值就是像素$(x,y) $的输出值。

在这里插入图片描述

该方法以方差作为各个区域灰度均匀性的测度。若区域含有尖锐的边缘,它的灰度方差必定很大,而不含边缘或灰度均匀的区域,它的方差就小,那么最小方差所对应的区域就是灰度最均匀区域。因此有选择保边缘平滑法既能够消除噪声,又不破坏区域边界的细节。另外,五边形和六边形在 ( x , y ) (x,y) x,y处都有锐角,这样,即使像素 ( x , y ) (x,y) x,y位于一个复杂形状区域的锐角处,也能找到均匀的区域。从而在平滑时既不会使尖锐边缘模糊,也不会破坏边缘形状。

在这里插入图片描述

5. 空间低通滤波法

邻域平均法可看作一个掩模作用于图像 f ( x , y ) f(x,y) f(x,y) 的低通空间滤波,掩模就是一个滤波器,它的响应为 H ( r , s ) H(r,s) H(r,s),于是滤波输出的数字图像 g ( x , y ) g(x,y) g(x,y) 用离散卷积表示为

在这里插入图片描述

常用的掩模有

在这里插入图片描述

掩模不同,中心点或邻域的重要程度也不相同,因此,应根据问题的需要选取合适的掩模。但不管什么样的掩模,必须保证全部权系数之和为单位值,这样可保证输出图像灰度值在许可范围内,不会产生“溢出”现象。

6. 中值滤波

中值滤波是对一个滑动窗口内的诸像素灰度值排序,用中值代替窗口中心像素的原来灰度值,因此它是一种非线性的图像平滑法

在这里插入图片描述

它对脉冲干扰及椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但它对点、线等细节较多的图像却不太合适。

对中值滤波法来说,正确选择窗口尺寸的大小是很重要的环节。一般很难事先确定最佳的窗口尺寸,需通过从小窗口到大窗口的中值滤波试验,再从中选取最佳的

在这里插入图片描述

离散阶跃信号、斜升信号没有受到影响。离散三角信号的顶部则变平了。对于离散的脉冲信号,当其连续出现的次数小于窗口尺寸的一半时,将被抑制掉,否则将不受影响。

一维中值滤波的概念很容易推广到二维。一般来说,二维中值滤波器比一维滤波器更能抑制噪声。

二维中值滤波器的窗口形状可以有多种,如线状、方形、十字形、圆形、菱形等(见图)。

在这里插入图片描述

不同形状的窗口产生不同的滤波效果,使用中必须根据图像的内容和不同的要求加以选择。从以往的经验看,方形或圆形窗口适宜于外轮廓线较长的物体图像,而十字形窗口对有尖顶角状的图像效果好。

在这里插入图片描述

图(a)为原图像;图(b)为加椒盐噪声的图像;图和图(d)分别为3×3、5×5模板进行中值滤波的结果。

可见中值滤波法能有效削弱椒盐噪声,且比邻域、超限像素平均法更有效

三、图像空间域锐化

在这里插入图片描述
在图像的识别中常需要突出边缘和轮廓信息。图像锐化就是增强图像的边缘或轮廓

图像平滑通过积分过程使得图像边缘模糊,图像锐化则通过微分而使图像边缘突出、清晰。

(一)梯度锐化法

图像锐化法最常用的是梯度法。 对于图像f(x,y),在(x,y)处的梯度定义为

在这里插入图片描述

梯度是一个矢量,其大小和方向为

在这里插入图片描述
对于离散图像处理而言,常用到梯度的大小,因此把梯度的大小习惯称为“梯度”。并且一阶偏导数采用一阶差分近似表示,即

在这里插入图片描述

Sobel 与 Prewitt 算子

为在锐化边缘的同时减少噪声的影响,Prewitt 从加大边缘增强算子的模板大小出发,由2x2扩大到3x3来计算差分,如图(a)所示。

在这里插入图片描述

Sobel 在 Prewitt 算子的基础上,对 4-邻域采用带权的方法计算差分,对应的模板如图(b)。

根据梯度计算式就可以计算 Roberts、Prewitt和Sobel梯度。一旦梯度算出后,就可根据不同的需要生成不同的梯度增强图像。

  • 第一种输出形式

    g ( x , y ) = g r a d ( x , y ) g(x,y)=grad(x,y) g(x,y)=grad(x,y)

此法的缺点是增强的图像仅显示灰度变化比较徒的边缘轮廓,而灰度变化比较平缓或均匀的区域则呈黑色。

  • 第二种输出形式

在这里插入图片描述
式中T是一个非负的阈值。适当选取T,可使明显的边缘轮廓得到突出,又不会破坏原来灰度变化比较平缓的背景

  • 第三种输出形式

在这里插入图片描述

它将明显边缘用一固定的灰度级 L G L_G LG 来表现。

  • 第四种输出形式

在这里插入图片描述

此方法将背景用一个固定的灰度级 L B L_B LB 来表现,便于研究边缘灰度的变化。

  • 第五种输出形式

在这里插入图片描述
这种方法将明显边缘和背景分别用灰度级 L G L_G LG L B L_B LB 表示,生成二值图像,便于研究边缘所在位置。

在这里插入图片描述

(二)Laplacian 增强算子

Laplacian 算子是线性二阶微分算子。即

在这里插入图片描述
对离散的数字图像而言,二阶偏导数可用二阶差分近似,可推导出Laplacian算子

表达式为

▽ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) ▽2f(x,y) = f(x+1,y) + f(x-1,y) + f(x,y+1) + f(x,y-1) - 4f(x,y) ▽2f(xy)=f(x+1y)+f(x1y)+f(xy+1)+f(xy1)4f(xy)

Laplacian增强算子为:

KaTeX parse error: Unexpected character: '' at position 51: …[ f(x+1,y)+ f(x̲1,y)+f(x,y+1)+ …

在这里插入图片描述

在这里插入图片描述

其特点是:
1、在灰度均匀的区域或斜坡中间 ▽ 2 f ( x , y ) ▽2f(x,y) ▽2f(xy) 为 0,增强图像上像元灰度不变;
2、在斜坡底或低灰度侧形成“下冲”;而在斜坡顶或高灰度侧形成“上冲”。

(三)高通滤波法

高通滤波法就是用高通滤波算子和图像卷积来增强边缘。常用的算子有:

在这里插入图片描述

四、图像的频率域增强

图像增强的目的主要包括:①消除噪声,改善图像的视觉效果;②突出边缘,有利于识别和处理。前面是关于图像空间域增强的知识,下面介绍频率域增强的方法。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像g(x,y)。

频率域增强的一般过程如下:

在这里插入图片描述

(一)频率域平滑

图像的平滑除了在空间域中进行外,也可以在频率域中进行。由于噪声主要集中在高频部分,为去除噪声改善图像质量,滤波器采用低通滤波器 H ( u , v ) H(u,v) H(u,v) 来抑制高频成分,通过低频成分,然后再进行逆傅立叶变换获得滤波图像,就可达到平滑图像的目的。常用的频率域低滤波器 H ( u , v ) H(u,v) H(u,v) 有四种:

1. 理想高通滤波器

二维理想高通滤波器的传递函数为

在这里插入图片描述

在这里插入图片描述

2. Butterworth低通滤波器

n阶Butterworth滤波器的传递函数为:

在这里插入图片描述

它的特性是连续性衰减,而不象理想滤波器那样陡峭变化,即明显的不连续性。因此采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度大大减小,没有振铃效应产生。

在这里插入图片描述

3. 指数低通滤波器

指数低通滤波器是图像处理中常用的另一种平滑滤波器。它的传递函数为:

在这里插入图片描述

采用该滤波器滤波在抑制噪声的同时,图像边缘的模糊程度较用Butterworth滤波产生的大些,无明显的振铃效应。

在这里插入图片描述

4. . 梯形低通滤波器

梯形低通滤波器是理想低通滤波器和完全平滑滤波器的折中。它的传递函数为:

在这里插入图片描述

梯形低通滤波器是理想低通滤波器和完全平滑滤波器的折中。它的传递函数为:

在这里插入图片描述

(二)频率域锐化

1. 理想高通滤波器

二维理想高通滤波器的传递函数为

在这里插入图片描述
在这里插入图片描述

2. 巴特沃斯高通滤波器

n阶巴特沃斯高通滤波器的传递函数定义如下

在这里插入图片描述

在这里插入图片描述

3. 指数滤波器

指数高通滤波器的传递函数为

在这里插入图片描述

4. 梯形滤波器

梯形高通滤波器的定义为

在这里插入图片描述

四种滤波函数的选用类似于低通。理想高通有明显振铃现象,即图像的边缘有抖动现象;Butterworth高通滤波效果较好,但计算复杂,其优点是有少量低频通过,H(u,v)是渐变的,振铃现象不明显.

指数高通效果比Butterworth差些,振铃现象不明显;梯形高通会产生微振铃效果,但计算简单,较常用。

一般来说,不管在图像空间域还是频率域,采用高频
滤波不但会使有用的信息增强,同时也使噪声增强。因此
不能随意地使用。

在这里插入图片描述

五、彩色增强技术

人眼的视觉特性 :

  • 分辨的灰度级介于十几到二十几级之间 ;
  • 彩色分辨能力可达到灰度分辨能力的百倍以上。

彩色增强技术是利用人眼的视觉特性,将灰度图像变成彩色图像或改变彩色图像已有彩色的分布,改善图像的可分辨性

  • 彩色增强方法可分为伪彩色增强和假彩色增强两类

(一)伪彩色增强

伪彩色增强是把灰度图像的各个不同灰度级按照线性或非线性的映射函数变换成不同的彩色,得到一幅彩色图像的技术。使原图像细节更易辨认,目标更容易识别。

伪彩色增强的方法主要有密度分割法、灰度级一彩色变换和频率域伪彩色增强三种。

1. 密度分割法

密度分割法是把灰度图像的灰度级从0(黑)到 M 0 M_0 M0(白)分成 N N N 个区间 I i ( i = 1 , 2 , … , N ) I_i( i=1,2,…,N) Ii(i=12N) ,给每个区间Ii指定一种彩色 C i C_i Ci ,这样,便可以把一幅灰度图像变成一幅伪彩色图像。

该方法比较简单、直观。缺点是变换出的彩色数目有限

在这里插入图片描述

2. 空间域灰度级一彩色变换

根据色度学原理,将原图像 f ( x , y ) f(x,y) f(x,y) 的灰度范围分段,经过红、绿、蓝三种不同变换 T R ( • ) T_R(•) TR() T G ( • ) T_G(•) TG() T B ( • ) T_B(•) TB() ,变成三基色分量 I R ( x , y ) I_R(x,y) IR(x,y) I G ( x , y ) I_G(x,y) IG(x,y) I B ( x , y ) I_B(x,y) IB(x,y),然后用它们分别去控制彩色显示器的红、绿、蓝电子枪,便可以在彩色显示器的屏幕上合成一幅彩色图像。

在这里插入图片描述

3.频率域伪彩色增强

频率域伪彩色增强方法的步骤为:
1)把灰度图像经傅立叶变换到频率域,在频率域内用三个不同传递特性的滤波器分离成三个独立分量;

2)然后对独立分量进行逆傅立叶变换,便得到三幅代表不同频率分量的单色图像,接着对这三幅图像作进一步的处理
(如直方图均衡化);

3)最后将它们作为三基色分量分别加到彩色显示器的红、绿、蓝显示通道,得到一幅彩色图像

在这里插入图片描述

(二)假彩色增强

假彩色增强是对一幅自然彩色图像或同一景物的多光谱图像,通过映射函数变换成新的三基色分量,彩色合成使感兴趣目标呈现出与原图像中不同的、奇异的彩色。

假彩色增强目的:一是使感兴趣的目标呈现奇异的彩色或置于奇特的彩色环境中,从而更引人注目;一是使景物呈现出与人眼色觉相匹配的颜色,以提高对目标的分辨力。

多光谱图像的假彩色增强可表示为

在这里插入图片描述
将可见光与非可见光波段结合起来,通过假彩色处理,就能获得更丰富的信息,便于对地物识别。

对于自然景色图像,通用的线性假彩色映射可表示为

在这里插入图片描述

例如采用以下的映射关系

在这里插入图片描述

则原图像中绿色物体会呈红色,蓝色物体会呈绿色,红
色物体则呈兰色。

伪彩色增强与假彩色增强有何区别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43848614/article/details/122285472

智能推荐

STM32点亮流水灯(GPIO)_stm32 led灯 拉不同的gpio口-程序员宅基地

文章浏览阅读719次。控制GPIO是通过调用寄存器实现的,每组IO口含下面7个寄存器。也就是7个寄存器,一共可以控制一组GPIO的16个IO口。_stm32 led灯 拉不同的gpio口

在vector中,怎样删除某个指定值的元素_vector删除指定值-程序员宅基地

文章浏览阅读1.1w次。【在vector中,怎样删除某个指定值的元素】Vectors provide no operation to remove elements directly that have a certain value. You must use an algorithm to do this.一.删除所有满足条件的元素For example, the following statemen_vector删除指定值

自动化测试工具Parasoft vs VectorCAST/C++谁更全?一起来看看_vectorcast和parasoft 对比-程序员宅基地

文章浏览阅读1.2k次。你知道测试金字塔吗?为了用开发实践来扩大测试规模,如何以正确的数量设计合适类型的自动化测试?测试金字塔是一个很好的指南!Parasoft测试金字塔 虽然测试自动化金字塔为高效的测试自动化策略提供了一个蓝图,但你不能把测试质量融入到应用程序中。金字塔需要建立在坚实的基础上,进行深度的代码分析,专注于识别和预防可靠性和安全性问题。Parasoft测试金字塔,如下图所示,展示了Parasoft如何帮助每个级别的测试解决方案。本文是自动化测试工具Parasoft功能对比之C++测试篇之一,将介绍_vectorcast和parasoft 对比

系统清理维护与安全防护软件_404软件下载窗口-程序员宅基地

文章浏览阅读135次。软件介绍:IObit Advanced SystemCare,系统清理维护与安全防护软件,大幅提升整体系统性能和安全!一键AI智能模式,全面扫描优化修复系统,拥有性能加速模式、系统优化、网络加速、启动项优化、软件更新、实时监视清理、隐私安全保护等功能,可以防病毒及间谍软件,浏览器跟踪保护隐私,保护电脑免受病毒攻击。更新日志:iobit.com/en/advancedsystemcarepro.php2021.3.19 v14.3.0.239Advanced SystemCare _404软件下载窗口

Lua中table的ipairs和pairs以及function的:和.区别_lua table ipairs-程序员宅基地

文章浏览阅读359次。转自:csdn火木达人Lua中table遍历ipairs和pairs的区别pairs()函数基本和ipairs()函数用法相同, 区别在于pairs()可以遍历整个table, 即包括数组及非数组部分.ipairs()函数用于遍历table中的数组部分.[plain] view plain copylocal tableA = {_lua table ipairs

彩虹易支付 9.27 最新版加订单查询 sy 更新版_彩虹易支付如何更新-程序员宅基地

文章浏览阅读505次。彩虹易支付 9.27 最新版加订单查询 sy 更新版_彩虹易支付如何更新

随便推点

毕业季-关于就业和择业_写出你目前关于就业择业和未来发展的困惑(不少于300字)-程序员宅基地

文章浏览阅读729次。大家好,我是山鸡,现在已经到了大家紧张的准备毕业论文,完成毕业设计,开始答辩的时候了。准备毕业,到毕业答辩这个时间段里,可以说是非常快的,紧张的准备各种材料,画图画表,让你在短时间内,集合你之前的所学知识,集中体现到一篇论文上面,这任务量,可想而知。下面我来说说就业与择业就业刚刚毕业,应该是你在实习之后,正式进入工作岗位的第一步,之前的实习都是小试牛刀,实习的时候,同事都会把你当学生看待, 对..._写出你目前关于就业择业和未来发展的困惑(不少于300字)

LayUi会议OA之我的会议_我的会议列表直播列表 ui-程序员宅基地

文章浏览阅读337次。目录一、我的会议SQL语句编写二、我的会议后端三、我的会议前端 5、运行效果: 2、我的会议Dao3、使用junit测试我的会议方法 2、这里的会议排座由文字转换为图片需要用到layui的自定义模板2.1先进入官方文档找到数据表格 3、由于排座图片会报路径问题,我们需要将项目名删掉双击点开 把项目名去掉......_我的会议列表直播列表 ui

python弹窗点击是否_Python:Pyppeteer点击弹出窗口-程序员宅基地

文章浏览阅读731次。如果有人会发现这个有用,这是我基于接受的答案的Python实现:import asyncioimport timefrom pyppeteer import launchfrom pyppeteer.errors import TimeoutErrorfrom urllib.parse import urlparseURLS = ['https://www.trustarc.com/']start..._pyppeteer是否点击了

什么是MVC和Web Api,以及他们两者的区别!_mvc和api的区别-程序员宅基地

文章浏览阅读3k次,点赞2次,收藏7次。一、什么是MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。在MVC设计模式中: Model是指要处理的业务逻辑和数据操作,它接收视图请求的数据并返回最终的处理_mvc和api的区别

大众点评数据:2023年9月全国全品类大众点评数据,涉及468个品类,包括诸如美食、购物、酒店、商场等等数据。数据用途:适用于行业分析、店铺选址、高校科研等等。数据字段:包括店铺详情、评论推荐、优-程序员宅基地

文章浏览阅读117次。购买流程:购买之前说明所需品类、区域,我们将按需报价。标价不是售价带需求来私,保证相对价格最低,字段相对最全。大众点评数据:2023年9月全国全品类大众点评数据,涉及468个品类,包括诸如美食、购物、酒店、商场等等数据。数据字段:包括店铺详情、评论推荐、优惠活动、位置信息等四大板块字段,内涵明细字段。数据用途:适用于行业分析、店铺选址、高校科研等等。

SpringBoot2 整合 Drools规则引擎,实现高效的业务规则_drools使用spring bean-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏15次。Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。具有易于访问企业策略、易于调整以及易于管理的特点,作为开源业务规则引擎,符合业内标准,速度快、效率高。..._drools使用spring bean

推荐文章

热门文章

相关标签