opencv基础篇 ——(八)图像平滑滤波

news2024/10/6 5:59:36

均值滤波blur

        用于对图像进行均值滤波(Mean Filtering)的函数。它通过对图像中每个像素点邻域内所有像素值求平均来计算新的像素值,以此达到平滑图像、降低噪声和消除细节的目的

函数原型:

void cv::blur(
    InputArray src,
    OutputArray dst,
    Size ksize,
    Point anchor = Point(-1, -1),
    int borderType = BORDER_DEFAULT
);

参数说明:

  1. InputArray src

    • 类型:InputArray
    • 描述:输入图像,通常为 cv::Mat 类型。可以是单通道或多通道(如彩色图像)的,支持各种深度(如 8-bit、16-bit、浮点型等)。
  2. OutputArray dst

    • 类型:OutputArray
    • 描述:输出图像,与输入图像 src 具有相同的尺寸和类型。存储经过均值滤波处理后的结果。
  3. Size ksize

    • 类型:Size
    • 描述:滤波器的大小,即卷积核尺寸。它是一个包含宽度(水平方向上的像素数)和高度(垂直方向上的像素数)的结构体。例如,Size(5, 5) 表示一个 5x5 的方形滤波器。ksize 必须为正奇数,以保证滤波器中心有一个明确的位置。
  4. Point anchor

    • 类型:Point
    • 描述:滤波器的锚点(中心点)。默认值为 Point(-1, -1),表示滤波器的中心将被自动设置为 (ksize.width / 2, ksize.height / 2)。用户可以指定其他位置作为锚点,但通常情况下保持默认值即可。
  5. int borderType

    • 类型:int

    • 描述:边界填充方式。定义了如何处理图像边缘像素(当滤波器的一部分落在图像外部时)。可选值包括:

      • BORDER_CONSTANT: 填充常数值,默认为 0。
      • BORDER_REPLICATE: 复制边缘像素值。
      • BORDER_REFLECT: 反射图像边缘像素(如同镜面反射)。
      • BORDER_WRAP: 将超出边界的像素值“环绕”到另一边。
      • BORDER_REFLECT_101 或 BORDER_DEFAULT: 类似于 BORDER_REFLECT,但在边缘处进行一次额外的翻转以避免边界像素值相同。
      • 其他边界模式,如 BORDER_TRANSPARENT 或基于高级插值的方法。

    默认值为 BORDER_DEFAULT,在 OpenCV 3.x 中通常等同于 BORDER_REFLECT_101

功能与应用:

  • 平滑图像:均值滤波是一种最简单的线性滤波方法,通过计算邻域内像素的平均值来替换原像素值,能够有效减少图像中的随机噪声,使图像看起来更平滑。

  • 降噪:对于具有高斯分布的噪声(如椒盐噪声或高斯噪声),均值滤波能够有效地降低其强度,但可能会导致图像细节的损失。

  • 预处理:在进行更复杂图像分析或特征提取之前,可能先使用 cv::blur() 对图像进行预处理,以简化后续算法的输入数据。

使用示例:

cv::Mat inputImage, outputImage;
// ... (加载或处理 inputImage)

cv::Size kernelSize(3, 3); // 定义 3x3 的滤波器大小
cv::blur(inputImage, outputImage, kernelSize);

中值滤波medianBlur

        用于对图像进行中值滤波(Median Filtering)的函数。中值滤波是一种非线性的图像平滑技术,它通过取给定邻域内像素值的中位数(而不是平均值)来替代当前像素值,从而有效地抑制椒盐噪声和脉冲噪声,同时保留图像边缘和细节相较于均值滤波更为清晰。

函数原型:

void cv::medianBlur(
    InputArray src,
    OutputArray dst,
    int ksize
);

参数说明:

  1. InputArray src

    • 类型:InputArray
    • 描述:输入图像,通常为 cv::Mat 类型。可以是单通道或多通道(如彩色图像)的,但对通道数和图像深度有一定的限制(见下文说明)。
  2. OutputArray dst

    • 类型:OutputArray
    • 描述:输出图像,与输入图像 src 具有相同的尺寸和类型。存储经过中值滤波处理后的结果。
  3. int ksize

    • 类型:int
    • 描述:滤波器的大小,即卷积核尺寸。它表示邻域窗口的宽度和高度,必须为正奇数,且通常较小(如 3、5、7 等),以保持运算效率。较大的 ksize 可能会提供更强的噪声抑制能力,但也会增加计算时间和可能导致更多细节损失。

功能与特性:

  • 抗噪声:中值滤波特别擅长去除椒盐噪声和脉冲噪声,因为它直接使用中位数代替像素值,使得单个或少数离群值(如噪声像素)对结果影响较小。

  • 保持边缘:由于中值滤波不依赖于像素值的平均,所以在处理图像边缘和细节丰富的区域时,相比于均值滤波,它更能保持边缘的锐利度和细节的完整性。

  • 通道和深度限制

    • 通道数:支持单通道图像和三通道彩色图像。
    • 图像深度:当 ksize 为 3 或 5 时,图像深度应为 CV_8U(8-bit unsigned integer)、CV_16U(16-bit unsigned integer)或 CV_32F(32-bit floating-point)。对于其他 ksize 值,支持的图像深度可能有所不同,具体请查阅最新的 OpenCV 文档或源码。

使用示例:

cv::Mat inputImage, outputImage;
// ... (加载或处理 inputImage)

int kernelSize = 5; // 定义 5x5 的滤波器大小
cv::medianBlur(inputImage, outputImage, kernelSize);

高斯模糊GaussianBlur

        用于对图像进行高斯模糊(Gaussian Blurring)的函数。高斯模糊是一种常见的图像平滑技术,它通过使用高斯核(Gaussian Kernel)对图像进行卷积来减少噪声和细节。高斯核是以高斯函数为基础的权重分布,其中距离中心像素越远的邻域像素对中心像素新值的贡献越小,从而实现平滑效果。

函数原型:

void cv::GaussianBlur(
    InputArray src,
    OutputArray dst,
    Size ksize,
    double sigmaX,
    double sigmaY = 0,
    int borderType = BORDER_DEFAULT
);

参数说明:

  1. InputArray src

    • 类型:InputArray
    • 描述:输入图像,通常为 cv::Mat 类型。可以是单通道或多通道(如彩色图像)的,支持各种深度(如 8-bit、16-bit、浮点型等)。
  2. OutputArray dst

    • 类型:OutputArray
    • 描述:输出图像,与输入图像 src 具有相同的尺寸和类型。存储经过高斯模糊处理后的结果。
  3. Size ksize

    • 类型:Size
    • 描述:高斯核的大小,即卷积核尺寸。它是一个包含宽度(水平方向上的像素数)和高度(垂直方向上的像素数)的结构体。例如,Size(5, 5) 表示一个 5x5 的方形高斯核。ksize 必须为正数且可以是偶数,此时高斯核会被对称地填充到指定尺寸;也可以是奇数,此时高斯核的中心有一个明确的位置。
  4. double sigmaX

    • 类型:double
    • 描述:沿 X 轴(水平方向)的高斯核标准偏差。该值决定了高斯函数在水平方向上的扩散程度。若为 0,则由 ksize.width 自动计算得出一个适当的值。
  5. double sigmaY

    • 类型:double
    • 描述:沿 Y 轴(垂直方向)的高斯核标准偏差。与 sigmaX 类似,用于控制高斯函数在垂直方向上的扩散程度。若为 0,则默认等于 sigmaX,即假设高斯核在两个方向上具有相同的扩散程度。
  6. int borderType

    • 类型:int
    • 描述:边界填充方式。定义了如何处理图像边缘像素(当高斯核的一部分落在图像外部时)。可选值与 cv::blur() 和 cv::medianBlur() 中的 borderType 参数相同,包括 BORDER_CONSTANTBORDER_REPLICATEBORDER_REFLECTBORDER_WRAPBORDER_REFLECT_101 等。

功能与应用:

  • 平滑图像:高斯模糊通过使用高斯核对图像进行卷积,有效地平滑图像,降低噪声和消除细节,使图像看起来更柔和。

  • 预处理:在进行图像分析、特征提取、物体识别等任务前,经常使用高斯模糊作为预处理步骤,以减少图像中的高频噪声对后续算法的影响。

  • 模拟景深效果:在计算机图形学中,高斯模糊可以用来模拟景深效果,即远处的物体看起来比近处的物体更模糊。

使用示例:

cv::Mat inputImage, outputImage;
// ... (加载或处理 inputImage)

cv::Size kernelSize(5, 5); // 定义 5x5 的高斯核大小
double sigma = 1.0; // 设置高斯核的标准偏差(这里仅需指定一个值,因为 sigmaX 和 sigmaY 相同)
cv::GaussianBlur(inputImage, outputImage, kernelSize, sigma);

双边滤波bilateralFilter

        用于执行双边滤波(Bilateral Filtering)的函数。双边滤波是一种非线性滤波方法,它结合了图像的空间邻近性和像素值相似性两个因素来进行滤波。这种滤波器特别适合于保留边缘的同时去除颜色和亮度噪声。

函数原型:

void cv::bilateralFilter(
    InputArray src,
    OutputArray dst,
    int d,
    double sigmaColor,
    double sigmaSpace,
    int borderType = BORDER_DEFAULT
);

参数说明:

  1. InputArray src

    • 类型:InputArray
    • 描述:输入图像,通常为 cv::Mat 类型。可以是单通道或多通道(如彩色图像)的,支持各种深度(如 8-bit、16-bit、浮点型等)。
  2. OutputArray dst

    • 类型:OutputArray
    • 描述:输出图像,与输入图像 src 具有相同的尺寸和类型。存储经过双边滤波处理后的结果。
  3. int d

    • 类型:int
    • 描述:滤波器的直径,必须为正数且通常为奇数。它决定了邻域窗口的大小,直接影响着滤波的效果和计算复杂度。
  4. double sigmaColor

    • 类型:double
    • 描述:控制颜色相似性权重的参数。它决定了像素值差异对滤波结果的影响程度。较大的 sigmaColor 值允许更大的颜色差异,意味着滤波器对颜色变化更加不敏感,可能导致更多的平滑效果;较小的值则更注重保持颜色差异,有助于保留图像的细节和边缘。
  5. double sigmaSpace

    • 类型:double
    • 描述:控制空间邻近性权重的参数。它决定了像素位置差异对滤波结果的影响程度。较大的 sigmaSpace 值允许更大的空间距离,意味着滤波器对像素位置的变化更加不敏感,可能导致更多的平滑效果;较小的值则更注重保持空间上的连续性,有助于保留图像的边缘和细节。
  6. int borderType

    • 类型:int
    • 描述:边界填充方式。定义了如何处理图像边缘像素(当滤波器的一部分落在图像外部时)。可选值与 cv::blur() 和 cv::medianBlur() 中的 borderType 参数相同,包括 BORDER_CONSTANTBORDER_REPLICATEBORDER_REFLECTBORDER_WRAPBORDER_REFLECT_101 等。

功能与应用:

  • 边缘保持:双边滤波由于同时考虑了空间邻近性和像素值相似性,能够在平滑图像的同时较好地保持边缘信息,避免边缘被模糊或消失。

  • 去噪:对于具有颜色和亮度噪声的图像,双边滤波能够有效地去除这些噪声,同时保持图像的整体结构和细节。

  • 图像增强与预处理:在图像增强、风格迁移、图像融合等应用中,双边滤波可以作为一种预处理手段,用于平滑图像并保持边缘,为后续处理提供更高质量的输入。

使用示例:

cv::Mat inputImage, outputImage;
// ... (加载或处理 inputImage)

int diameter = 5; // 定义滤波器的直径为 5
double colorSigma = .jpg; // 控制颜色相似性权重的参数
double spaceSigma = 7.0; // 控制空间邻近性权重的参数
cv::bilateralFilter(inputImage, outputImage, diameter, colorSigma, spaceSigma);

二维卷积filter2D

        用于对图像进行二维卷积(2D Convolution)的函数。二维卷积是图像处理中的基础操作之一,它通过将一个固定大小的滤波器(Kernel)与输入图像中的每个像素及其邻域进行乘法和加权求和,生成新的像素值,以此实现图像平滑、边缘检测、锐化、特征提取等多种图像变换。

函数原型:        

void cv::filter2D(
    InputArray src,
    OutputArray dst,
    int ddepth,
    InputArray kernel,
    Point anchor = Point(-1, -1),
    double delta = 0,
    int borderType = BORDER_DEFAULT
);

参数说明:

  1. InputArray src

    • 类型:InputArray
    • 描述:输入图像,通常为 cv::Mat 类型。可以是单通道或多通道(如彩色图像)的,支持各种深度(如 8-bit、16-bit、浮点型等)。
  2. OutputArray dst

    • 类型:OutputArray
    • 描述:输出图像,与输入图像 src 具有相同的尺寸,但可以指定不同的深度(见 ddepth 参数)。存储经过二维卷积处理后的结果。
  3. int ddepth

    • 类型:int
    • 描述:输出图像的深度。可以选择与输入图像相同的深度,或者指定为不同的深度。常见的深度值如 CV_8UCV_16UCV_32F 等。若设置为 -1,表示输出图像具有与输入图像相同的深度。
  4. InputArray kernel

    • 类型:InputArray
    • 描述:二维卷积核。通常为 cv::Mat 类型,表示一个二维数组,包含了卷积过程中应用于每个像素邻域的权重。它可以是单通道的,也可以是多通道的(对应于输入图像的通道数),且其元素通常是对称分布的。
  5. Point anchor

    • 类型:Point
    • 描述:卷积核的锚点(中心点)。默认值为 Point(-1, -1),表示卷积核的中心将被自动设置为 (kernel.cols / 2, kernel.rows / 2)。用户可以指定其他位置作为锚点,但通常情况下保持默认值即可。
  6. double delta

    • 类型:double
    • 描述:添加到每个像素点滤波结果的常数值。可用于调整输出图像的整体亮度或其他属性。
  7. int borderType

    • 类型:int
    • 描述:边界填充方式。定义了如何处理图像边缘像素(当卷积核的一部分落在图像外部时)。可选值与 cv::blur() 和 cv::medianBlur() 中的 borderType 参数相同,包括 BORDER_CONSTANTBORDER_REPLICATEBORDER_REFLECTBORDER_WRAPBORDER_REFLECT_101 等。

功能与应用:

  • 通用卷积操作cv::filter2D() 函数提供了对图像进行任意二维卷积的能力,适用于各种自定义滤波器或预定义的滤波器(如 Sobel、Laplacian、Gaussian 等)。

  • 图像平滑、锐化、边缘检测:根据提供的卷积核,cv::filter2D() 可以实现图像平滑(如使用高斯核)、锐化(如使用拉普拉斯核)、边缘检测(如使用 Sobel 或 Prewitt 核)等多种图像处理任务。

  • 特征提取:在计算机视觉和机器学习中,卷积操作是许多特征提取算法(如传统的模板匹配、现代的卷积神经网络)的核心组成部分。cv::filter2D() 可以用于实现这些算法的基本卷积层。

使用示例:

cv::Mat inputImage, convKernel, outputImage;
// ... (加载或创建 inputImage, convKernel)

cv::filter2D(inputImage, outputImage, -1, convKernel);

可分离线性滤波sepFilter2D

        用于对图像进行可分离线性滤波(Separable Linear Filtering)的函数。可分离线性滤波是一种优化的图像卷积技术,它将一个二维卷积操作分解为两个一维卷积操作,分别沿水平和垂直方向进行。这种方法极大地减少了计算量,特别是在使用大型滤波核时,可以显著提高处理速度。

函数原型:

void cv::sepFilter2D(
    InputArray src,
    OutputArray dst,
    int ddepth,
    InputArray kernelX,
    InputArray kernelY,
    Point anchor = Point(-1, -1),
    double delta = 0,
    int borderType = BORDER_DEFAULT
);

功能与应用:

  • 高效滤波:可分离线性滤波通过两次一维卷积代替一次二维卷积,大大减少了计算量。特别适合于使用大尺寸滤波核(如高斯滤波器)时,能够显著提升处理速度。

  • 广泛适用:支持各种线性滤波器,如高斯滤波、拉普拉斯滤波、Sobel 导数算子等。只需提供相应的水平和垂直方向的一维卷积核即可。

  • 图像平滑、锐化、边缘检测:根据提供的卷积核,cv::sepFilter2D() 可以实现图像平滑、锐化、边缘检测等多种图像处理任务。

盒式滤波boxFilter

        用于对图像进行盒式滤波(Box Filter)的函数。盒式滤波是一种简单的线性滤波技术,它通过对图像中每个像素周围的一个矩形区域内的像素值进行平均,来计算该像素的新值。盒式滤波常用于图像平滑、噪声减少等任务。

void cv::boxFilter(
    InputArray src,
    OutputArray dst,
    int ddepth,
    Size ksize,
    Point anchor = Point(-1, -1),
    bool normalize = true,
    int borderType = BORDER_DEFAULT
);

功能与应用:

  • 图像平滑:盒式滤波通过对图像中每个像素周围区域进行平均,能够有效地平滑图像,减少噪声和消除细节,使图像看起来更柔和。

  • 简单滤波器:盒式滤波器结构简单,计算速度快,适用于对计算资源有限或者需要快速响应的应用场景。

  • 预处理:在进行图像分析、特征提取、物体识别等任务前,盒式滤波可以作为预处理步骤,以减少图像中的高频噪声对后续算法的影响。

平方盒式滤波sqrBoxFilter 

        用于对图像进行平方盒式滤波(Squared Box Filter)的函数。平方盒式滤波与常规盒式滤波(cv::boxFilter())类似,都是基于一个矩形区域内的像素值进行运算,但不同之处在于,平方盒式滤波是对该区域内像素值的平方进行平均,而不是直接取像素值的平均。这种滤波方法常用于计算图像的局部方差、能量或者其他与像素值平方相关的特性。

void cv::sqrBoxFilter(
    InputArray src,
    OutputArray dst,
    int ddepth,
    Size ksize,
    Point anchor = Point(-1, -1),
    bool normalize = true,
    int borderType = BORDER_DEFAULT
);

功能与应用:

  • 局部方差计算:平方盒式滤波可以直接用来计算图像的局部方差,这是许多图像处理和计算机视觉任务中的重要特征。将平方盒式滤波的结果减去盒式滤波(cv::boxFilter())结果的平方,即可得到局部方差图像。

  • 能量计算:在某些应用中,需要评估图像中某区域的能量,即该区域内像素值的平方之和。平方盒式滤波可以快速给出这些区域的能量值。

  • 预处理:在进行图像分析、特征提取、物体识别等任务前,平方盒式滤波可以作为预处理步骤,用于计算与像素值平方相关的特性,这些特性可能对后续算法有重要意义。

效果展示

均值滤波

高斯滤波

二维卷积filter2D

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百面算法工程师 | 分类和聚类

目录 6.1 为什么正确率有时不能有效评估分类算法? 6.2 什么样的分类器最好? 6.3 什么是聚类,你知道哪些聚类算法? 6.4 K-Means聚类算法如何调优? 6.5 K-Means聚类算法如何选择初始点? 6.6 K-Means聚类聚的是特征还是样本 …

贪吃蛇身子改进加贪吃蛇向右移动

1. 蛇移动的思想: 其实就是删除头节点 ,增加尾节点;一句代码搞定 struct Snake *p; p head; head head -> next; free(p) 防止造成多的空间节点 2.增加尾节点代码思想: 2.1 .开辟new 节点的空间 struct Snake *new (stru…

2015年中国电子地图数据

这是一份收藏得比较久的电子地图数据,虽然很比较旧,但数据内容很丰富,它可以在一些GIS系统中作测试用。 2015中国电子地图 2015年中国电子地图数据的压缩包有3.29GB大小,如下图所示。 压缩文件大小 该数据进行解压之后&…

CentOS 7虚拟机配置过程中所需组件的安装(二)

1.安装net-tools组件(解决无 ifconfig) # yum install net-tools 2.安装gcc、c编译器以及内核文件 # yum -y install gcc gcc-c kernel-devel 验证安装成功 3.安装nano(文本编辑器) # yum install nano

Qt 把.exe打包成安装文件形式

目录 1.下载工具 Qt Installer Framework2.将bin文件添加到环境变量3.拷贝startmenu示例-备用4.准备Qt Release打包好的程序5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下6.生成安装包7.修改安装包图标8.修改主程序程序安装引导-创建快捷键9.添…

vue快速入门(四十四)自定义组件

注释很详细,直接上代码 上一篇 新增内容 全局注册自定义组件并应用局部注册自定义组件并应用 此篇使用了axios模块没有安装导入的先看这一篇 axios模块下载与导入 源码 main.js import Vue from vue import App from ./App.vue//全局引入axios // 引入axios impor…

(九)Pandas表格样式 学习简要笔记 #Python #CDA学习打卡

目录 一. Pandas表格样式 1)举例数据 2)字体颜色 3)背景高亮 4)极值背景高亮 (a)高亮最大值 highlight_max() (b)高亮最小值 highlight_min() (c)同时…

viewerjs在vue中实现点击图片预览、切换、缩放、拖拽、旋转等功能

1、下载依赖&#xff1a; npm i viewerjs 2、定义html结构 <template> <div><ul class"artBody"><li><img src"picture-1.jpg" alt"Picture 1"></li><li><img src"picture-2.jpg" alt&…

WinForm右键菜单的快键键设置

Form中有一个富文本框控件&#xff0c;在里面右键鼠标&#xff0c;弹出下拉菜单。快捷键的效果则是按下altp,触发按下属性事件。 1.从工具箱添加RichTextBox 2.然后添加ContextMenuStrip 3.选择RichTextBox的ContextMenuStrip属性值为contextMenuStrip1 4.按照下图设置“属…

基于Python实现心脏病数据可视化DEA+预测【500010103.1】

一、数据说明 该心脏病数据集是通过组合 5 个已经独立可用但以前未合并的流行心脏病数据集来策划的。在这个数据集中&#xff0c;5 个心脏数据集结合了 11 个共同特征&#xff0c;使其成为迄今为止可用于研究目的的最大心脏病数据集。 该数据集由 1190 个实例和 11 个特征组成…

Springboot+Vue项目-基于Java+MySQL的IT技术交流和分享平台系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

【人工智能】AIGC(Artificial Intelligence Generated Content)

随着生成式 AI 应用快速进入市场&#xff0c;以及越来越多大模型的不断面世&#xff0c;2023 年已经成为生成式 AI 的元年&#xff1a;不同区域、各行各业、不同领域的人们开始尝试在工作和生活中使用生成式 AI&#xff0c;以探索各种可能性。于企业而言&#xff0c;生成式 AI …

Matlab图像处理-均值滤波,中值滤波和高斯滤波。

针对添加了零均值高斯噪声的图像&#xff0c;以取得尽可能好的处理效果为目的&#xff0c;采用不少于3种方法进行处理&#xff1b;对处理结果进行定性和定量的比较、并得出相应的结论。 1.算法原理&#xff1a; 采用的图像滤波包括均值滤波&#xff0c;中值滤波和高斯滤波。 …

算法基础:并查集详解

并查集 并查集&#xff0c;在一些有N个元素的集合应用问题中&#xff0c;我们通常是在开始时让每个元素构成一个单元素的集合&#xff0c;然后按一定顺序将属于同一组的元素所在的集合合并&#xff0c;其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学…

【网络编程】网络编程概念 | TCP和UDP的区别 | UDP数据报套接字编程 | Socket

文章目录 网络编程一、什么是网络编程1.TCP和UDP的区别 二、UDP数据报套接字编程DatagramSocketDatagramPacket回显服务器&#xff08;echo server&#xff09; 网络编程 一、什么是网络编程 通过网络&#xff0c;让两个主机之间能够进行通信。基于通信来完成一定的功能。 ​…

Linux网络-DNS域名解析服务

目录 一.DNS相关介绍 1.DNS是什么 2.DNS系统的分布式数据结构 根域 顶级域 二级域 子域 主机 3.服务器类型 主域名服务器 从域名服务器 缓存域名服务器 转发域名服务器 二.DNS域名解析 1.DNS域名解析方式及功能 2.DNS域名解析查询方式 2.1.递归查询&#xff0…

Verilog基础语法——parameter、localparam与`define

Verilog基础语法——parameter、localparam与define 写在前面一、localparam二、parameter三、define写在最后 写在前面 在使用Verilog编写RTL代码时&#xff0c;如果需要定义一个常量&#xff0c;可以使用define、parameter和localparam三种进行定义与赋值。 一、localparam …

施耐德EOCR-2CT-300/5电流互感器 50HZ 5VA

EOCR主要产品有电子式电动机保护继电器&#xff0c;电子式过电流继电器&#xff0c;电子式欠电流继电器&#xff0c;电子式欠电压继电器&#xff0c;其它保护和监视装置&#xff0c;电流互感器。 施耐德EOCR-2CT-300/5电流互感器 EOCR-2CT系列型号&#xff1a; EOCR 2CT 100…

操作系统安全:Linux安全审计,Linux日志详解

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

18.Nacos配置管理-微服务读取Nacos中的配置

需要解决的问题 1.实现配置更改热更新&#xff0c;而不是改动了配置文件还要去重启服务才能生效。 2.对多个微服务的配置文件统一集中管理。而不是需要对每个微服务逐一去修改配置文件&#xff0c;特别是公共通用的配置。 配置管理服务中的配置发生改变后&#xff0c;回去立…