数字图像处理复习
第一章 位图基础
了解图像与图形的区别。 在存储结构和表示方式上有根本区别,图形是矢量结构的储存形式,图像栅格结构的储存形式 了解数字图像的形成过程,尤其是连续图像数字化的好处。 掌握衡量数字图像的精度的指标:空间分辨率 和灰度级分辨率 。 (1)比较下列两组图像, 从视觉效果上看, 导致最后一幅图像质量较低的原因分别是? 答案:第(I)组的原因是空间分辨率低,第(II)组的原因是灰度级分辨率低。 (2)下面哪幅图,图像的灰度分辨率高 A.1024*1024 8 位图 B.512*512 12 位图 答案:B 掌握数字图像处理的概念:利用计算机对图像进行去除噪声、增强、复原、分割、提取特征 等的理论、方法和技术称为数字图像处理。 了解数字图像处理系统的组成:数字图像处理系统包括输入系统、图像处理与分析系统、 图像输出系统和图像存储系统 等四个部分。 了解图像工程的层次及其区别。 从语义角度看, 图像工程有 3 个层次——底层的图像处理、中层的图像分析和高层的图像理解。 图像工程 3 个层次的区别:图像处理是从图像到图像 的过程,图像分析是从图像到数据 的过程,图像理解是从图像到抽象 的过程。 (1)去除图像中的噪声属于以下哪个阶段? A 图像处理 B 图像分析 C 图像理解 答案: A 了解图像增强和图像复原的区别和联系。 答案: 图像增强和图像复原的区别: (1)目的不同。图像增强的目的是改善原始图像的质量 ,以便满足人们的视觉感知体验, 或者特定领域对高质量图像的需求。图像复原的目的是产生一副高质量的图像 ,使其逼近原始图像的清晰场景。 (2)技术不同。图像增强技术不依赖于原始图像的降质原因 ,直接根据实际需求通过灰度级变换、平滑处理、锐化处理等图像处理技术提升图像的品质。图像复原技术建立在原始图像退化过程的基础上 ,通常采用优化技术复原出清晰图像。 图像增强和图像复原的联系:图像增强虽然不以逼近清晰图像为目的, 但是图像增强的结果比原始图像更接近清晰图像,在一定程度上有图像复原的性质。 了解常见的位图图像的存储格式、颜色表、表项和数据区中数字的含义。 常见的位图图像包括黑白图像、8 位灰度图像、8 位伪彩色图像和 24 位真彩色图像。其中,黑白图像、8 位灰度图像和 8 位伪彩色图像 含有颜色表,24 位真彩色图像没有颜色表。 黑白图像的颜色表含有 2 项,8 位灰度图像和 8 位伪彩色图像的颜色表含有 256 项,这些图像中数据区的数字是颜色表中表项的序号。24 位真彩色图像中数据区的数字表示灰度值。 掌握在 Windows 中位图图像的存储规则。 在 Windows 中, 位图图像按行存储, 从左下角开始, 从下到上进行存储。 每行的字节数不足 4 的倍数时需要补零。 了解黑白图像、8 位位图图像和 24 位真彩色图像像素占据字节情况。 黑白图像中 8 个像素占据 1 个字节,8 位位图中 1 个像素占据 1 个字节,24 位真彩色图像 中 1 个像素占据 3 个字节。 拓展: 运用该知识点解释 1 像素黑白图像中数据区的值为 80 00 00 00,而 8 像素排一行的 黑白图像中数据区的值为 FF 00 00 00. 掌握位图文件的存储格式的一般组成,以及各个组成部分的情况。 位图文件由 4 个部分组成,包括文件头、信息头、颜色表和数据区 。 其中, 文件头包含字段(2 个字节)、(字节),共占字节, 信息头包括字段(字节)、(字节)和(字 节),共占字节。 信息头和颜色表合起来又称为位图信息 。
第二章 图像显示
了解图像显示函数 StretchDIBits() BOOL StretchDIBits(HDC hdc,int x,int y,int Width,int Height,int xSrc,int ySrc,int SrcWidth,int SrcHeight, CONST VOID*lpvBits,CONST BITMAPINFO *lpbmi,UNIT fuColorUse,DWORD dwrop); hdc :设备上下文句柄。 x,y :目标左上角坐标。 nWidth :目标宽度。 nHeight :目标高度 xSrc,ySrc :源位图左上角坐标。 nSrcWidth, nSrcHeight :源位图的宽和高 lpvBits :DIB 数据图像的指针。 lpbmi :BITMAPINFO 结构的指针。 fuColorUse :DIB_RGB_COLORS。 dwrop :SRCCOPY。 关于图像特效显示,了解向上、向下、向左和向右扫描的显示函数中第 2 至 9 个参数。 (1) 以下实现的是向右扫描的分别是: 仅显示 int x,int y,int Width,int Height,int xSrc,int ySrc,int SrcWidth,int SrcHeight, ( C ) A.(向下) 0, j, bitmapWidth, 1, 0, bitmapHeight-j, bitmapWidth, 1, B.(向上) 0,bitmapHeight-j,bitmapWidth,1, 0,j, bitmapWidth, 1, C.(向右) i,0,1, bitmapHeight, i,0,1, bitmapHeight, D.(向左) bitmapWidth-i,0,1, bitmapHeight, bitmapWidth-i,0,1, bitmapHeight,
第三章 图像几何变换
了解图像几何变换的基本类型: 图像平移、图像缩放、图像镜像、图像转置和图像旋转。 了解引入齐次坐标的意义和做法。 意义是可以使用矩阵统一表示图像的几何变换。以n+1维向量表示n维向量 掌握图像几何变换的基本类型的矩阵形式。 了解图像几何变换是对位图文件的存储形式进行操作,能够解释图像转置变换的结果 与图像作为数字矩阵的转置相差 180°。
第四章 图像灰度变换
了解常见的降质图像和图像增强技术。 低对比度图像及其增强技术——图像灰度变换(第四章) 噪声图像及其增强技术——图像平滑处理(第五章) 边缘和细节不突出图像及其增强技术——图像锐化处理(第六章) 了解灰度变换属于点运算,能够增强的图像的类型: 偏暗图像、偏亮图像和动态范围太小的图像,掌握这三种类型低对比度图像的灰度直方图的走势。 了解灰度窗口变换,掌握灰度线性变换的公式: 能够对参数 a 和 b 进行讨论。 a>0,对比度增大 a<0,对比度减小 a=1,b不等于0,灰度上移(更亮)或下移(更暗) a=1,b=0,输出输入相同 当 a=- 1 ,b=255 时, T 为反色变换。 a<0,b>0,暗区变亮,亮区变暗,求补 在掌握灰度线性变换的基础上掌握灰度分段线性变换。 了解灰度非线性变换的概念。掌握对数变换 和指数变换 的函数曲线的走势和灰度变换功能。 对数变换可以拓展低灰度值的动态范围, 减小高灰度值动态范围 ,而指数变换可以拓展高灰度值的动态范围,减小低灰度值的动态范围 。 掌握幂次变换的数学公式, 以及幂对幂次变换函数曲线形状的影响。 指数越小,前段越陡后段约缓,指数越大,前段越缓后段越陡 掌握黑白图像的二值化和阈值处理,以及实现步骤。 非0取1,固定阈值,双固定阈值 掌握图像反色变换的适用情形:图像中背景区域全黑 ,目标区域的灰度值相对较大 。 掌握灰度直方图的概念和性质, 以及直方图均衡化的计算过程(结合 PPT 中 P43 例题)。 表示图像中具有某种灰度级的像素的个数 ,反映了图像中每种灰度出现的频率。是图像最基本的统计特征。 直方图均衡化是指通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有“相同的”像素点数 的过程
第五章 图像平滑处理
了解图像平滑处理属于空域滤波,以邻域处理为基础。 原理:减小图像中某些像素点与其邻域点的灰度差异 了解图像平滑处理的基础 包括噪声的特点和清晰图像的平滑性假设。噪声具有随机性, 是干扰信号。清晰图像是有用信号, 其中相邻的两个灰度值具有近似相等,称为图像的平滑性假设。 噪声和图像中有用信号的这种区别是图像平滑处理的基础。 图像平滑处理的目的: 去除噪声,同时避免使物体的边缘和纹理细节变模糊。 了解图像线性平滑、非线性平滑和自适应平滑的概念。 掌握空域滤波中滤波器、窗口、掩膜、模板、核等概念, 邻域处理中 4 邻域和 8 邻域 的概念, 空域滤波的操作步骤(这些步骤称为模板运算、 卷积运算) ,了解模板通常为正方形, 边长为奇数。 掌握二值图像的噪声消除法及其实现步骤。 方法: 步骤: 了解高斯噪声和椒盐噪声的特点。 高斯噪声的特点: 高斯噪声是稠密噪声 (稠密的意思是图像中每个像素都被噪声污染) ,是 加性噪声(噪声与有效信号的灰度值是相加的关系) 。高斯噪声可以由随机变量表示,服从 正态分布。补充正态分布的一个性质:假如随机变量η1 , η2 , … , ηk 都服从正态分布, 即 η1~ N( μ1, σ1^2), η2~N( μ2, σ2^2), … , ηk~N( μk, σk^2),那么这些随机变量的平均值 (η1+η2+ …+ηk)/k 也服从正态分布, 即(η1+η2+ …+ηk)/k~N(( μ1+ μ2…+μk)/k, ( σ1^2+ σ2^2+ …+σk2)/k 2) 椒盐噪声的特点: 椒盐噪声是稀疏噪声 (稀疏的意思是图像中少量像素以随机的方式被噪声 污染) ,是乘性噪声(此处乘性的意思是使用 0 和 255 替代图像的灰度值)。 掌握邻域平均法和中值滤波的适用范围:两种方法都可以用于抑制高斯噪声和椒盐噪声,但是邻域平均法 更适用于去除高斯噪声 ,中值滤波 更适用于去除椒盐噪声 。 了解均值滤波和高斯滤波的区别与联系。 均值滤波的模板具有一般性 ,高斯滤波的模板近似服从二维高斯分布 。 高斯滤波是一种特殊的均值滤波。 了解邻域平均法和中值滤波中窗口大小对噪声去除效果的影响。 一般地,窗口越大, 噪声去除效果越好 , 但是图像中物体的边缘和纹理细节越容易变模糊 。 掌握均值滤波(包括加权均值滤波)和中值滤波的实现步骤。 均值滤波: 中值滤波: 了解自适应平滑滤波的概念和 9 种 5*5 滤波器(多个滤波器合起来称为滤波器组)。 了解中值滤波的性质,最简单的性质是对阶跃信号和斜坡信号来说输入输出相同 。了解中值滤波器的形状及其适用情形。 方形和圆形 中值滤波器比较适用于缓变的较长轮廓线物体 ,十字形窗口 比较适用于含有尖顶物体 。 不管哪种形状的滤波器, 窗口大小以不超过图像中最小有效物体 的尺寸为宜。 了解高斯噪声和椒盐噪声产生的原因。 高斯噪声主要源于成像系统的内部,是光子计数误差、模数转换误差和电子热运动等多种 因素的叠加,是稠密噪声。 椒盐噪声主要源于 CCD 坏点和传输错误,是稀疏噪声。
第六章 图像锐化处理
了解图像锐化处理也是图像增强的一种技术, 目的是突出图像中物体的边缘和细节。 比较: 图像锐化 处理关注物体边缘 , 主要用于突出图像中物体的边缘, 但是容易放大噪声 。 图像平滑 处理关注随机噪声 ,主要用于抑制噪声,但是容易模糊图像中物体的边缘 。 了解图像锐化处理也采用空域滤波的方式进行。 比较:图像锐化处理与图像平滑处理的模板有本质区别, 锐化处理 中模板的所有值加起来结果为 0 ,而平滑处理中模板(必须是归一化模板)的所有值加起来结果为 1 。 掌握图像物体边缘的概念、 类型及其与梯度/一阶微分的对应关系(PPT 第 14 页)。 图像锐化主要用于增强图像的边缘和灰度跳变部分,从而突出图像中的细节或者模糊了的部分, 边缘(edge)是图像中灰度分布有 阶跃变化 的像素集合 图像边缘存在于目标与背景、目标与目标的边界,是图像信息集中的地方,也是图像的基本特征之一 图像一阶微分性质: 在平坦区域 微分为0 (系数和为0) 在斜坡起始点 处非0 沿斜坡面 微分非0 梯度值的大小与相邻像素的灰度差值成正比。 在图像边缘 上,像素的灰度值变化比较大,梯度值也大 在图像的非边缘 区域,灰度变化相对平缓,梯度值较小; 在图像的等灰度 区域内,梯度值为零。 由于图像的梯度值大小与图像的边缘区域和图像非边缘区域密切相关,所以我们设法使用梯度值实现图像边缘的锐化 掌握一阶差分的定义(PPT 第 17 页),了解 Roberts 算子、Sobel 算子、Prewitt 算子和 Kirsch 算子。 交叉算法,无平滑,对噪声太敏感,计算简单,但没有清楚的中心点 了解二阶微分对图像细节具有较强的响应, 二阶微分与图像细节具有较强的对应关系, 了解二阶微分算子: Laplacian 算子和高斯-拉普拉斯(LOG)算子。 一阶微分会产生较宽的边缘 二阶微分对细节有较强的响应 二阶微分对灰度阶梯产生双响应 一般地将,二阶微分增强图像细节 的能力较强,一阶微分主要用于边缘提取 。 4领域,8领域(加入对角像素,噪声被增强,双边缘) 了解反锐化掩膜和高频提升滤波的概念。 了解图像增强的综合应用。 掌握一阶纵向微分运算和一阶横向微分运算及其实现步骤。 纵向微分运算: 横向微分运算: 纵(横)向微分运算 实现步骤 1)取得原图的数据区指针。 2)开辟一块内存缓冲区,并初始化为255。 3)每个像素依次循环,新图像缓冲区中的当前像素的灰度值等于原图中当前像素的灰度值与其左(上)方的像素的灰度值之差的绝对值。 4)将缓冲区中的图像复制到原图数据区 理解微分、一阶微分、二阶微分、梯度、差分和导数的概念。 微分与导数。微分以导数 为基础。 (更一般地,微积分建立在导数的基础上) 微分与差分。微分包括一阶微分和二阶微分, 是针对连续图像的, 需要借助差分 才能用于离散 形式的数字图像。 微分与梯度。一阶微分总是沿着某个方向, 二阶微分可以沿着某个方向, 也可以先后沿着若干个方向的组合 。所有方向上一阶导数的组合称为梯度 。所以, 梯度算子有固定的数学形式,一定是一阶的,而一阶微分算子是一阶的,但是没有固定的数学形式。 掌握梯度锐化的概念、常见技术及其实现步骤。梯度锐化旨在突出原始图像中物体的边缘。与此不同, 一阶微分运算是计算原始图像的梯度图像。 图像平滑往往使图像中的边界、轮廓 变得模糊,为了减少影响,需要利用图像锐化技术,使边缘变得清晰 。常用的方法有: 1)直接以梯度值代替; 2)辅以门限判断; 3)给边缘规定一个特定的灰度级; 4)给背景规定灰度级; 5)根据梯度二值化图像. 了解边缘检测的概念。 边缘检测是计算视觉中一个十分重要的任务,其旨在通过图像锐化 处理技术寻找图像中物体边缘的位置和方向。为此, 边缘检测算子一般设计为微分算子,可以是一阶微分算子,也可以是二阶微分算子,甚至可以是更高阶的微分算子。
第七章 图像分割与测量
了解图像的阈值分割:直方图阈值选择、半阈值选择和迭代阈值法 (包括 Otsu 的两个基本假设)。 直方图阈值选择: 1)阈值T可通过分析边缘检测输出的直方图来确定。假设,一幅图像只有物体和背景 两部分组成,其灰度级直方图成明显的双峰值 。 阈值选择直接影响分割效果,利用灰度直方图求两峰之间的谷底 作为阈值。 2)人工选择法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选出合适的阈值。也可以在人工选出阈值后,根据分割效果,不断的交互操作,从而选择出最佳的阈值。 3)若直方图呈现多个明显的峰值,如三个峰值,可取两个峰谷处的灰度值 T1,T2作为阈值。同样,可将阈值化后的图像变成二值化图像。 半阈值选择:不论图像的直方图具有双峰还是多峰值,阈值化后将原多值图像变成二值图像,若希望只把图像的背景表示成二值图像 (即背景不是最白就是最黑),而物体为多值图像 。此时,可采用半阈值技术 ,把物体从背景中分离出来。 迭代阈值法: 基本思想: 选择一个阈值作为初始值,按某种策略不断地迭代改进,直到满足给定的准则。自动输出一个阈值。 在迭代过程中,关键是阈值改进策略 阈值改进策略要求:快速收敛,新产生阈值优于 上一次的阈值。 步骤: 1)选择图像灰度的中值作为初始阈值Ti=T0。 2)利用阈值Ti把图像分割成两部分区域, R1和R2,并计算其灰度均值。 3)计算新的阈值Ti+1 4)重复步骤2、3,直到Ti+1和Ti的阈值差别小于某个给定值。 Otsu法: 基本假设:一个阈值T 将图像像素分为前景和背景两类,每一类的方差尽可能小,也就是类内方差(intra-class)最小 。这等价于最大化类间方差(inter-class) 掌握边界跟踪方法。 从图像中一个边界点出发,然后根据某种判别准则搜索下一个边界点 ,以此跟踪出目标边界 确定边界的起始搜索点 ,起始点的选择很关键,对某些图像,选择不同的起始点会导致不同的结果。 确定合适边界的判别准则和搜索准则 ,判别准则用于判断一个点是不是边界点,搜索准则则指导如何搜索下一个边缘点。 确定搜索的终止条件 。 实现步骤 1)获得图像的首地址,图像的高和宽。 2)开辟一块内存缓冲区,初始化为255。 3)将图像进行二值化处理。 4)跟踪边界点,找到1个边界点,就将内存缓冲区中该点置0。 5)按照跟踪准则,重复执行(4),直到回到初始点。 掌握二值图像区域标记。掌握二值图像的面积测量和周长测量。 二值图像区域标记: 在二值图像中,相互联结的黑像素集合成为一个(黑)区域。 通过对图像内每个区域进行标记操作,求得区域的数目。 处理前的f是二值的,像素要么为0(黑),要么为255(白), 处理后每个像素的值即为其所处理区域的区域标号(1,2,3,…)。 实现步骤: 1)读入原图数据,存放在缓冲区内。 2)根据输入的阈值进行二值化。 3)从左到右,从上倒下,依次检测每个像素,如果发现某像素点像素值为0,则依次检测该点的右上、正上、左上及左前点共四个点的像素值,根据前面介绍的8个准则进行连通性的判断,并标识物体,将物体的像素值改为标号。 4)依次逐行检测至扫描结束。 二值图像区域面积 测量: 在二值图像f中,通过对图像f内每个像素进行标记操作,将物体的像素值改为标号,求各种标号的总和,即求得不同区域的面积数目。 二值图像区域周长 测量: 在二值图像区域标记的基础上,物体的像素值改为标号,再采用边界跟踪法 ,跟踪各封闭区域边界线(轮廓线)的每个黑像素 的标号,记录二值图像物体边界。 了解目标物体的轮廓提取法、区域增长法和区域分裂合并法。 轮廓提取法: 图像边缘是图像局部特性不连续性(灰度突变、颜色突变等)的反映,它标志着一个区域的终结和另一个区域的开始。 二值图像的轮廓提取采用掏空内部点法:如果原图中有一点为黑,且它的8个相邻点皆为黑,则将该点删除。对于非二值图像,要先进行二值化处理。 步骤: 1)获取原图像的首地址,图像的高和宽。 2)开辟一块内存缓冲区。 3)将像素点的8邻域像素读入数组中,如果8个邻域像素都和中心点相同,在内存缓冲区中将该像素点置白,否则保持不变。 4)重复执行3),对每一个像素进行处理。 区域增长法: 依次用图像的每一个像素的灰度值和种子点相减 ,判断结果是否小于标准差,是则将该点和种子点合并,不是则保持像素点的灰度值不变。这样处理后的图像就是用区域增长法处理后的边缘分割图像。 步骤: 实现步骤 1)获取原图像的首地址,及高和宽。 2)依次用图像的每一个像素的灰度值减去种子点,判断结果的绝对值是否小于阈值,阈值为10。如果小于则将种子点赋给该像素点,否则灰度值保持不变。 区域分裂合并法: 利用金字塔或四叉树数据结构的层次概念,将图像划分成一组任意不相交的初始区域 ,即从金字塔或四叉树数据结构的任一中间层开始,根据给定的均匀性检测准则进行分裂和合并这些区域,逐步改善区域划分的性能,直至最后将图像分成数量最少的均匀区域为止。 掌握纹理的基本概念: 纹理是指在图像中反复出现 的局部模式 和它们的排列规则 。反 复出现的局部模式又称为纹理基元。 了解纹理分析方法: 直方图分析法、边缘方向直方图分析法、自相关函数分析法、灰度共生矩阵和灰度-梯度共生矩阵。
第八章 图像形态学处理
掌握并能够运用图像腐蚀、图像膨胀的定义。 了解图像腐蚀、图像膨胀的特点。 图像腐蚀:消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 图像膨胀:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞 掌握图像开启与闭合。了解图像开启与闭合的特点。 开:先腐蚀后膨胀。①用来消除 小物体、②在纤细点处分离 物体、③平滑较大物体的边界的同时并不明显改变其面积 A∘B=(A⊖B)⊕B 闭:先膨胀后腐蚀。①用来填充 物体内细小空洞 、②连接 邻近物体、③平滑其边界的同时并不明显改变其面积。 A•B=(A⊕B)⊖B 理解并掌握击中击不中变换的定义,在此基础上掌握图像细化和粗化的定义,能够对图像中的目标物体进行操作。
第十章 图像合成
了解图像的基本运算:几何运算、灰度运算、代数运算和逻辑运算。几何运算(第三章图像几何变换):改变图像中物体对象(像素)之间的空间关系 ,不改变像素的灰度值。 灰度运算(第四章图像灰度变换):指对一幅图像中每个像素点的灰度值 进行计算的方法逐点 运算,与相邻的像素之间没有运算关系,不会改变图像内像素点之间的空间位置关系。 代数运算:加减乘除 逻辑运算:与或非 了解图像的加运算、减运算(尤其是反色变换)和逻辑运算。 图像加运算(重叠),图像减运算(分离,去除背景,检查同一场景两幅图的变化) 相加作用:对同一场景的多幅图像求平均值,降低随机噪声的影响。二次曝光。 相减作用:去除一幅图像中不需要的图案,检测运动物体的目的。 相乘作用:可以遮住图像中的某些部分,仅留下感兴趣的物体。 相除作用:可产生对颜色和多光谱图像分析十分重要的比率图像。消除图像数字化设备中空间所产生的影响 逻辑运算:与运算(二值化的同时保留原图和背景相同部分,去除不同部分),或运算(与加类似,但会二值化),非运算(二值化后进行反色变换),或非运算(或结果反色),与非运算(与结果反色),异或运算(相同为0,不同为1)
第十一章 24位彩色图像处理
了解彩色图像是最简单的多光谱图像。 颜色分为两类:彩色(除非彩色外)和非彩色; 非彩色包括黑色、白色和灰色,称为无色系列。 了解三基色: 自然界的任何一种颜色可以由三基色(rgb)按不同的比例混合而成; 反之, 每种颜色都可以分解为三种基本颜色。 三基色之间是相互独立 ,任何一种颜色都不能 由其余的两种颜色来组成。 混合色的色调由三种颜色的比例决定, 亮度 为三种颜色的亮度的平均值 , 饱和度与亮度和基色的比例都有关系 (详细信息见 PPT 第 11 页)。 记住颜色模型: RGB 、HSI、YUV 、CMYK 和 YCbCr RGB 多用于视频监视器和彩色摄像机; HSI (色度,饱和度,亮度)更符合人的视觉系统观察彩色的方式,常用于动画中的彩色图形; YUV 用于电视信号传输; CMYK 为印刷工业中常见的颜色模型,是一种减色模型; YCbCr 是 YUV 经过缩放和反转后的翻版,用于 JEPG 图像压缩格式。 了解其他补充:HSV 是一个与 HSI 类似的颜色模型。区别: I 表示亮度, 而 V 表示明度; 与 RGB 的转换公式不同; HSV 可以由一个双锥体表示, HIS 可以由倒锥体表示。 详细信 息见 PPT 第 13 页备注。 了解 HIS 、YUV 、CMYK 和 YCbCr 与 RGB 颜色模型的转换公式。
相关阅读:
软件项目管理 7.4.1.进度计划编排-超前与滞后方法
C++高频面试题总结
【C语言数据结构】图-邻接链表法(没写完,以后再补)
vue的axios是干什么的
技术美术的职责
比亚迪的利润飙升超过200%,汽车销量创纪录,有你的一份力吗?
Spring源码解析——事务的回滚和提交
TortoiseGit设置作者信息和用户名、密码存储
manimgl入门
Ubuntu22.04 安装配置VNC Server
原文地址:https://blog.csdn.net/m0_48878393/article/details/125436964