当前位置: 首页 > news >正文

JavaCV 之均值滤波:图像降噪与模糊的权衡之道

🧑 博主简介:CSDN博客专家历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程高并发设计Springboot和微服务,熟悉LinuxESXI虚拟化以及云原生Docker和K8s,热衷于探索科技的边界,并将理论知识转化为实际应用。保持对新技术的好奇心,乐于分享所学,希望通过我的实践经历和见解,启发他人的创新思维。在这里,我希望能与志同道合的朋友交流探讨,共同进步,一起在技术的世界里不断学习成长。

在这里插入图片描述


在这里插入图片描述

JavaCV 之均值滤波:图像降噪与模糊的权衡之道

一、引言

在图像处理这个广阔的领域中,图像质量的优化始终是一个核心的研究方向。其中,噪声的存在是影响图像质量的重要因素之一。

噪声是一个常见的问题,它可能由多种因素引起,如传感器的电子干扰、传输过程中的信号失真等。这些噪声会降低图像的质量,影响后续的图像分析和处理。为了提高图像的质量,我们需要采取一些方法来去除噪声。均值滤波是一种简单而有效的图像滤波方法,它通过计算图像中每个像素点邻域内像素值的平均值来替换该像素点的值,从而达到减少噪声的目的。同时,均值滤波也会使图像变得模糊,因为它在一定程度上平滑了图像的细节。因此,如何在降噪和保持图像细节之间找到平衡,是图像处理中的一个重要问题。

本文将介绍如何使用 JavaCV 实现均值滤波操作,以及如何在图像降噪和模糊之间找到平衡。我们将详细介绍均值滤波的原理和实现方法,并通过代码示例和图片对比展示均值滤波的效果。最后,我们将讨论如何在实际应用中选择合适的滤波参数,以达到最佳的图像降噪效果。

二、图像噪声的深入剖析

噪声noise)是一种干扰图像正常视觉效果的不需要的信号成分。它的来源多种多样,下面详细介绍。

(一)传感器电子干扰导致的噪声

在图像采集设备中,传感器起着至关重要的作用。例如,在数码摄像机或者数码相机中,传感器是将光线转化为电信号的关键部件。然而,传感器本身容易受到电子干扰。电子元件在工作时会产生热噪声,这是由于电子的热运动导致的。这种热噪声会随机地改变传感器输出的电信号,从而在最终形成的图像上表现为噪声点。此外,周围电磁场的干扰也不容忽视。如果传感器周围存在强电磁场源,如其他电子设备或者电力传输线路,电磁场会耦合到传感器电路中,干扰正常的信号采集,进而产生噪声。

(二)传输过程信号失真引发的噪声

当图像信号从采集设备传输到存储设备或者处理设备时,传输过程中的各种因素可能导致信号失真,从而产生噪声。以网络传输为例,如果网络带宽不足,图像信号在传输过程中可能会被压缩,这种压缩可能会丢失一些图像细节信息,产生类似噪声的伪像。另外,传输线路中的电磁干扰也会改变信号的值。比如,在长距离的电缆传输中,如果电缆没有良好的屏蔽措施,外界电磁场会在电缆上感应出额外的电压,从而干扰图像信号,在接收端的图像上表现为噪声。

噪声的存在严重破坏了图像的质量,它可能使得图像中的重要细节被掩盖,影响后续的图像分析、识别等操作。例如,在医学图像中,噪声可能会干扰医生对病变部位的准确判断;在卫星图像分析中,噪声可能会导致对地形地貌的误判。

三、均值滤波原理详解

均值滤波Mean Filtering)作为一种经典的图像滤波方法,有着简单而明确的原理。

(一)核心思想

均值滤波的核心思想是通过对图像中每个像素点邻域内的像素值进行平均计算,然后用这个平均值来替换该像素点的原始值,从而达到减少噪声的目的。这里的邻域是指以目标像素点为中心的一个小区域。

均值滤波是一种线性滤波方法,它通过计算图像中每个像素点邻域内像素值的平均值来替换该像素点的值。均值滤波的基本思想是用邻域内像素值的平均值来代替中心像素的值,从而达到平滑图像的目的。

均值滤波的数学表达式如下:

g ( x , y ) = 1 M ∑ ( i , j ) ∈ S x y f ( i , j ) g(x,y)=\frac{1}{M}\sum_{(i,j)\in S_{xy}}f(i,j) g(x,y)=M1(i,j)Sxyf(i,j)

其中, g ( x , y ) g(x,y) g(x,y)表示滤波后图像在坐标 ( x , y ) (x,y) (x,y)处的像素值, f ( i , j ) f(i,j) f(i,j)表示原始图像在坐标 ( i , j ) (i,j) (i,j)处的像素值, S x y S_{xy} Sxy表示以坐标 ( x , y ) (x,y) (x,y)为中心的邻域, M M M表示邻域内像素的总数。

(一)优缺点

均值滤波的优点是简单易懂计算速度快,对高斯噪声有一定的抑制作用。但是,均值滤波也有一些缺点,例如会使图像变得模糊,丢失图像的细节信息。

以常见的3x3滤波核为例,对于图像中的一个目标像素点,JavaCV会将这个目标像素点周围的8个像素点(加上自身总共9个像素点)的像素值进行相加操作。例如,假设这9个像素点的像素值分别为p1, p2, p3, p4, p5, p6, p7, p8, p9(这里的p表示像素值),那么它们的总和为S = p1 + p2+ p3 + p4 + p5 + p6 + p7 + p8 + p9。然后,将这个总和除以9,得到平均值A = S / 9。最后,用这个平均值A替换目标像素点的原始值。

这种滤波方法在去除图像中的噪声方面有其合理性。因为噪声通常表现为像素值的突然变化,是一种局部的异常值。通过取邻域像素值的平均值,可以将这种突然的变化平滑掉,从而减少噪声的影响。然而,均值滤波也存在明显的缺点,那就是它会使图像变得模糊。这是因为在对邻域像素值进行平均的过程中,图像中的细节部分,如边缘和细小的纹理,也被平滑处理了。例如,对于一条清晰的图像边缘,经过均值滤波后,边缘两侧像素值的差异会变小,导致边缘看起来不那么锐利,从而使图像整体变得模糊。

四、JavaCV中的均值滤波实现

(一)Maven依赖配置

在Java项目中使用JavaCV进行均值滤波操作,正确配置Maven依赖是至关重要的。以下是所需的Maven依赖:

<dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.7</version>
</dependency>
  1. javacv依赖
    • javacv是JavaCV的核心库。它提供了一系列用于计算机视觉任务的高级接口。这个库建立在javacpp之上,并且整合了OpenCV等底层库的功能,使得在Java环境下能够方便地进行图像处理操作。
  2. javacpp依赖
    • javacpp是一个用于在Java和C++之间进行交互的库。在JavaCV中,它起到了桥梁的作用,允许Java代码调用C++编写的底层图像处理库(如OpenCV)。它通过自动生成Java和C++之间的绑定代码,使得Java程序能够高效地利用C++库的功能。
  3. opencv - platform依赖
    • 这个依赖包含了OpenCV的相关功能库。OpenCV是一个广泛应用于计算机视觉领域的库,它提供了丰富的图像处理算法和工具。JavaCV借助OpenCV的强大功能来实现诸如均值滤波等图像处理操作。

(二)代码示例及注释

下面是一个完整的JavaCV均值滤波的代码示例:

import org.bytedeco.opencv.global.opencv_core;
import org.bytedeco.opencv.global.opencv_imgcodecs;
import org.bytedeco.opencv.global.opencv_imgproc;
import org.bytedeco.opencv.opencv_core.Mat;
import org.bytedeco.opencv.opencv_core.Size;public class MeanFilteringExample {public static void main(String[] args) {// 1. 读取原始图像Mat srcImage = opencv_imgcodecs.imread("input.jpg");if (srcImage == null) {System.out.println("无法读取图像,请检查文件路径是否正确");return;}// 2. 创建目标图像的Mat对象Mat dstImage = new Mat();// 3. 定义均值滤波的滤波核大小// 滤波核的大小决定了邻域的范围,从而影响图像的模糊程度。较小的滤波核可以保留更多的图像细节,但降噪效果可能不太明显;// 较大的滤波核可以更好地去除噪声,但会使图像变得更加模糊。因此,我们可以根据具体情况选择合适的滤波核大小。Size ksize = new Size(4, 4);// 4. 执行均值滤波操作opencv_imgproc.blur(srcImage, dstImage, ksize);// 5. 保存处理后的图像opencv_imgcodecs.imwrite("output.jpg", dstImage);System.out.println("均值滤波操作成功完成,处理后的图像已保存为output.jpg");}
}
  1. 读取原始图像
    • Mat srcImage = opencv_imgcodecs.imread("input.jpg");这一行中,我们使用opencv_imgcodecs.imread函数来读取一张名为input.jpg的图像。这个函数是JavaCV中用于读取图像的函数,它返回一个Mat对象。Mat是OpenCV中用于表示图像的数据结构,它可以存储图像的像素信息、颜色通道信息等。如果图像读取失败,srcImage将为null,此时程序会输出提示信息并终止运行。
  2. 创建目标图像的Mat对象
    • Mat dstImage = new Mat();这一行创建了一个新的Mat对象dstImage。这个对象将用于存储经过均值滤波处理后的图像。在创建这个对象时,我们没有指定具体的大小和类型,因为它将根据源图像srcImage和均值滤波操作的结果自动确定合适的属性。
  3. 定义均值滤波的滤波核大小
    • Size ksize = new Size(4, 4);这里我们创建了一个Size对象ksize,用于表示均值滤波的滤波核大小。在这个例子中,我们选择了3x3的滤波核。Size是OpenCV中的一个数据结构,用于表示二维的尺寸大小。这个尺寸大小决定了在进行均值滤波时,每个像素点周围参与平均计算的邻域范围。
  4. 执行均值滤波操作
    • opencv_imgproc.blur(srcImage, dstImage, ksize);这是执行均值滤波的核心语句。opencv_imgproc.blur函数接受三个参数:源图像srcImage、目标图像dstImage和滤波核大小ksize。这个函数会根据我们定义的滤波核大小,对源图像中的每个像素点进行均值滤波操作。具体来说,对于源图像中的每个像素点,它会计算该像素点邻域内(由滤波核大小确定邻域范围)像素值的平均值,然后将这个平均值赋给目标图像中对应的像素点。
  5. 保存处理后的图像
    • opencv_imgcodecs.imwrite("output.jpg", dstImage);最后,我们使用opencv_imgcodecs.imwrite函数将处理后的图像dstImage保存为名为output.jpg的文件。这个函数接受两个参数:要保存的文件名和要保存的图像数据(以Mat对象表示)。如果图像保存成功,程序会输出提示信息,表示均值滤波操作已经成功完成。

(三)多次滤波

我们可以对图像进行多次均值滤波,每次使用较小的滤波核。这样可以在一定程度上减少图像的模糊程度,同时也能达到较好的降噪效果。

例如,我们可以对图像进行两次 3x3 的均值滤波,代码如下:

public class MeanFilterExample {public static void main(String[] args) {// 读取原始图像Mat src = opencv_imgcodecs.imread("input.jpg");// 创建目标图像Mat dst1 = new Mat();Mat dst2 = new Mat();// 定义滤波核大小Size kernelSize = new Size(3, 3);// 第一次均值滤波opencv_imgproc.blur(src, dst1, kernelSize);// 第二次均值滤波opencv_imgproc.blur(dst1, dst2, kernelSize);// 保存处理后的图像opencv_imgcodecs.imwrite("output.jpg", dst2);}
}

在上述代码中,我们首先对原始图像进行一次 3x3 的均值滤波,得到中间结果dst1。然后,我们对dst1进行第二次 3x3 的均值滤波,得到最终的处理结果dst2。通过多次滤波,我们可以在一定程度上减少图像的模糊程度,同时也能提高降噪效果。

五、图像案例展示与分析

(一)案例一:带有高斯噪声的人像图像

原始图像(input.jpg,如下图:图像中人物的面部和背景有明显的高斯噪声,看起来像是有很多细小的斑点,人物的皮肤纹理被噪声干扰,背景中的细节也变得模糊不清。
在这里插入图片描述
经过均值滤波处理后的图像(output.jpg:在处理后的图像中,可以看到人物面部的高斯噪声明显减少,皮肤看起来更加光滑。背景中的噪声也得到了有效的抑制,背景的整体轮廓更加清晰。然而,同时也可以发现一些细节的丢失。例如,人物头发的一些细小发丝在处理后变得不那么明显,这是因为均值滤波在去除噪声的同时平滑了图像的细节,导致这些细小的纹理被模糊掉了。
在这里插入图片描述
详细分析:
在原始图像中,高斯噪声的存在使得图像的视觉效果大打折扣。对于人物面部,噪声干扰了皮肤的正常纹理,使得皮肤看起来粗糙且不真实。在背景部分,噪声掩盖了一些原本清晰的细节,如背景中的装饰图案或者纹理。

当应用均值滤波后,由于每个像素点被其邻域像素值的平均值所替换,噪声这种局部的异常值被平滑掉。对于人物面部,噪声点被平均化,使得皮肤看起来更加光滑。对于背景,整体的噪声水平降低,背景的主要结构和轮廓更加清晰可辨。但是,均值滤波的模糊效果也显现出来。比如人物头发的细小发丝,这些发丝本身是图像中的细节部分,在均值滤波过程中,由于邻域像素的平均,发丝的像素值差异被减小,导致发丝看起来不那么清晰。

(二)案例二:含有椒盐噪声的风景图像

原始图像(input.jpg:图像中的天空、山脉和树木部分有椒盐噪声,天空中的椒盐噪声看起来像是随机分布的黑白点,山脉的轮廓因为噪声变得不那么清晰,树木的枝叶部分也有明显的噪声干扰。
在这里插入图片描述
经过均值滤波处理后的图像(output.jpg:在处理后的图像中,天空中的椒盐噪声基本被去除,天空看起来更加纯净。山脉的轮廓变得更加清晰,树木的整体形状也更加明显。但是,山脉表面的一些细小的岩石纹理和树木枝叶的细节有一定程度的模糊。
在这里插入图片描述详细分析:
原始图像中的椒盐噪声严重影响了风景的美感。天空中的黑白点噪声破坏了天空的纯净感,山脉和树木部分的噪声使得这些元素的细节难以分辨。

在应用均值滤波后,对于天空部分,由于均值滤波的平均作用,椒盐噪声这种黑白点的异常值被平滑掉,使得天空恢复了较为纯净的状态。对于山脉和树木,整体的形状和轮廓在噪声减少后变得更加清晰。然而,均值滤波的模糊效果也对图像的细节产生了影响。山脉表面的细小岩石纹理和树木枝叶的细节属于图像中的高频信息,在均值滤波过程中,这些高频信息被平滑,导致细节的丢失,使得山脉看起来更加平滑,树木的枝叶细节也不那么丰富。

六、总结

本文介绍了如何使用 JavaCV 实现均值滤波操作,以及如何在图像降噪和模糊之间找到平衡。我们首先详细介绍了均值滤波的原理和实现方法,并通过代码示例和图片对比展示了均值滤波的效果。最后,我们讨论了如何在实际应用中选择合适的滤波参数,以达到最佳的图像降噪效果。

均值滤波是一种简单而有效的图像滤波方法,它可以有效地去除图像中的噪声,但也会使图像变得模糊。为了在图像降噪和模糊之间找到平衡,我们可以调整滤波核大小、进行多次滤波或结合其他滤波方法。在实际应用中,我们需要根据具体情况选择合适的滤波方法和参数,以达到最佳的图像降噪效果。

七、参考资料文献

  1. 《OpenCV官方文档》:这是OpenCV库的官方文档,包含了OpenCV中各种函数、数据结构等的详细介绍,对于理解JavaCV中基于OpenCV的图像处理功能非常有帮助。
  2. 《数字图像处理原理与实践》:这本书全面地介绍了数字图像处理的基本概念、算法和应用,为理解图像噪声的产生、均值滤波的原理以及其对图像的影响等提供了理论基础。
  3. 《JavaCV官方指南》:专门针对JavaCV库的官方指南,详细介绍了JavaCV的使用方法、各种功能的实现以及相关的示例代码,对于在Java环境下进行图像处理的开发人员来说是非常重要的参考资料。

相关文章:

JavaCV 之均值滤波:图像降噪与模糊的权衡之道

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

桥接模式,外界与主机通,与虚拟机不通

一 二 在此选择Windows与外界连接的网卡&#xff0c;通过有线连就选有线网卡&#xff0c;通过无线连就选无线网卡。 三 如果需要设置固定IP&#xff0c;则选择"Manual"进行设置。我这边根据实际需要&#xff0c;走无线的时候用DHCP&#xff0c;走有线的时候设固定IP…...

用HTML构建酷炫的文件上传下载界面

1. 基础HTML结构 首先&#xff0c;我们构建一个基本的HTML结构&#xff0c;包括一个表单用于文件上传&#xff0c;以及一个列表用于展示已上传文件&#xff1a; HTML <!DOCTYPE html> <html> <head><title>酷炫文件上传下载</title><link …...

Gateway 统一网关

一、初识 Gateway 1. 为什么需要网关 我们所有的服务可以让任何请求访问&#xff0c;但有些业务不是对外公开的&#xff0c;这就需要用网关来统一替我们筛选请求&#xff0c;它就像是房间的一道门&#xff0c;想进入房间就必须经过门。而请求想要访问微服务&#xff0c;就必须…...

7 种常见的前端攻击

大家都知道&#xff0c;保证网站的安全是十分重要的&#xff0c;一旦网站被攻陷&#xff0c;就有可能造成用户的经济损失&#xff0c;隐私泄露&#xff0c;网站功能被破坏&#xff0c;或者是传播恶意病毒等重大危害。所以下面我们就来讲讲7 种常见的前端攻击。 1. 跨站脚本 (X…...

element plus实现点击上传于链接上传并且回显到upload组件中

摘要&#xff1a; 今天遇到一个问题&#xff1a;vue3使用elemnt plus的上传图片时&#xff0c;数据是从别人的系统导出来的商品&#xff0c;图片是http的形式的&#xff0c;并且商品很多的&#xff0c;一个一个下载下来再上传很麻烦的&#xff0c;所以本系统插件商品时图片使用…...

ELK日志分析系统部署

ELK日志分析系统 ELK指的是ElasticsearchLogstashKibana这种架构的缩写。 ELK是一种日志分析平台&#xff0c;在很早之前我们经常使用Shell三剑客&#xff08;一般泛指grep、sed、awk&#xff09;来进行日志分析&#xff0c;这种方式虽然也可以应对多种场景&#xff0c;但是当…...

驾校小程序:一站式学车解决方案的设计与实践

​​一、引言 随着移动互联网技术的飞速发展&#xff0c;人们的生活方式和消费习惯正在发生深刻变化。驾校作为传统的服务行业&#xff0c;也面临着数字化转型的迫切需求。驾校小程序作为一种轻量级的应用&#xff0c;能够为用户提供便捷、丰富的学车服务&#xff0c;成…...

【自然语言处理】BERT模型

BERT&#xff1a;Bidirectional Encoder Representations from Transformers BERT 是 Google 于 2018 年提出的 自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;它基于 Transformer 架构的 Encoder 部分。BERT 的出现极大提升了 NLP 任务的性能&#xff0c;如问答系…...

Android 添加如下飞行模式(飞行模式开和关、飞行模式开关菜单显示隐藏)接口

请添加如下飞行模式(飞行模式开关、飞行模式开关显示隐藏)接口: 飞行模式飞行模式开关com.action.airplankey: enable value:boolean true open the airplan false close the airplan关闭Intent intent = new Intent(); intent.setAction("com.action.airplan");…...

【Vue3】基于 Vue3 + ECharts 实现北京市区域地图可视化

文章目录 基于 Vue3 ECharts 实现北京市区域地图可视化1、引言2、项目初始化2.1、环境搭建2.2 、安装依赖2.3、项目结构 3、地图数据准备3.1、地图 JSON 文件获取&#xff08;具体的json数据&#xff09; 4、 组件开发4.1、Map 组件的设计思路4.2、基础结构实现4.3、核心数据结…...

【IC】什么是min period check

在 Synopsys Primetime 工具中可以检查.lib 文件中时钟输入的最小周期。想象这样一个场景&#xff0c;有一个设计 A&#xff0c;它有一个名为 clk 的时钟&#xff0c;并且该设计的 clk 周期被设定为一个值&#xff0c;比如 2 纳秒&#xff0c;即 500MHz。假设我们在进行静态时序…...

MyBatis入门之一对多关联关系(示例)

【图书介绍】《SpringSpring MVCMyBatis从零开始学&#xff08;视频教学版&#xff09;&#xff08;第3版&#xff09;》-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)&#xff08;第3版&#xff09;》(杨章伟&#xff0c;刘祥淼)【摘要 书评 试读】- 京东图书 …...

【Git 】Windows 系统下 Git 文件名大小写不敏感

背景 在 Windows 系统上&#xff0c;Git 对文件名大小写的不敏感性问题确实存在。由于 Windows 文件系统&#xff08;如 NTFS &#xff09;在默认情况下不区分文件名大小写所导致的。 原因分析 文件系统差异 Windows文件系统&#xff08;如 NTFS&#xff09;默认不区分文件名…...

【算法系列-二叉树】层序遍历

【算法系列-二叉树】层序遍历 文章目录 【算法系列-二叉树】层序遍历1. 算法分析&#x1f6f8;2. 相似题型&#x1f3af;2.1 二叉树的层序遍历II(LeetCode 107)2.2 二叉树的右视图(LeetCode 199)2.3 二叉树的层平均值(LeetCode 637)2.4 N叉树的层序遍历(LeetCode 429)2.5 在每个…...

我的世界方块改进版

引子 之前文章的磁性方块&#xff0c;通过3D打印实现&#xff0c;也批量打印了一些&#xff0c;下图就是一个小树 使用过程中&#xff0c;发现磁力感觉不紧&#xff0c;所以想改进一版。 正文 之前的结构如下&#xff1a;&#xff1a; 如果出现相邻的空隙间的磁铁相互作用&am…...

博客搭建之路:hexo增加搜索功能

文章目录 hexo增加搜索功能本地搜索弊端algolia搜索 hexo增加搜索功能 hexo版本5.0.2 npm版本6.14.7 next版本7.8.0 作为一个博客&#xff0c;没有搜索功能&#xff0c;如何在大批文章中找到自己想要的&#xff0c;那在hexo中如何增加搜索功能呢&#xff1f; search:path: sea…...

2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis、微服务、分布式、ES、设计模式)

前言 春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们 Java 程序员的面试之路&#xff0c;是挺难的&#xff0c;过了 HR&#xff0c;还得被技术面&#xff0c;在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终侥幸…...

MybatisPlus入门(一)MybatisPlus简介

一、MyBatis简介 MyBatisPlus&#xff08;简称MP&#xff09;是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提高效率 - 官网&#xff1a;https://mybatis.plus/ https://mp.baomidou.com/ MyBatisPlus特性&#xff1a; - 无侵入&#xff1a;只做增强…...

QoS学习笔记

QoS业务分类 基于 DiffServ 服务模型的 QoS 业务可以分为以下几大类&#xff1a; 流分类和标记&#xff08;Traffic classification and marking&#xff09;&#xff1a;要实现差分服务&#xff0c;需要首先将数据包分为不同的类别或者设置为不同的优先级。将数据包分为不同…...

图(邻接矩阵)知识大杂烩!!(邻接矩阵结构,深搜,广搜,prim算法,kruskal算法,Dijkstra算法,拓扑排序)(学会一文让你彻底搞懂!!)

小伙伴们大家好&#xff0c;今天给大家带来图&#xff08;邻接矩阵&#xff09;的各种知识&#xff0c;让你看完此文章彻底学会邻接矩阵的相关问题。 1.邻接矩阵表示方法 1.1知识讲解 我们用一个二维数组arr来表示图。若图为有向图&#xff0c;其中arr【i】【j】w表示i号点和…...

Prometheus自定义PostgreSQL监控指标

本文我们将介绍如何在Prometheus中创建自定义PostgreSQL指标。默认情况下由postgres_export运行的查询可能不能满足用户需求&#xff0c;但我们可以创建自定义查询&#xff0c;并要求postgres_exporter公开自定义查询的结果。postgres_exporter最近被移到了Prometheus Communit…...

400行程序写一个实时操作系统(十六):操作系统中的调度策略

前言 在前面我们完成了Sparrow的临界区的代码&#xff0c;使用临界区&#xff0c;能够解决常见的并发问题&#xff0c;现在该完善我们的调度算法了。 调度算法在操作系统领域常常是热门的话题。不同的用途将会使用不同的调度策略。在本节&#xff0c;笔者将为大家介绍一些操作…...

从安灯系统看汽车零部件工厂的智能制造转型

在当今快速发展的制造业领域&#xff0c;汽车零部件工厂正面临着日益激烈的市场竞争和不断提高的客户需求。为了在竞争中脱颖而出&#xff0c;实现可持续发展&#xff0c;许多汽车零部件工厂纷纷踏上智能制造转型之路。而安灯系统作为一种重要的生产管理工具&#xff0c;在这场…...

SwiftUI(三)- 渐变、实心形状和视图背景

引言 在现代的应用的UI设计中&#xff0c;渐变和形状背景为界面带来了丰富的层次与视觉效果&#xff0c;而SwiftUI提供了一系列简单且强大的API&#xff0c;可以轻松实现这些效果。在这篇文章中&#xff0c;我们将介绍SwiftUI中的渐变、实心形状和视图背景的基础用法&#xff…...

RK3568-ota升级

ota升级 OTA&#xff08;Over-the-Air&#xff09;即空间下载技术。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大&#xff0c;可以无损失升级系统&#xff0c;主要通过网络&#xff0c;例如 WIFI、3G/4G 自动下载 OTA 升级包、自动升级&#xff0c;也支持通过…...

GR-ConvNet代码详解

GR-ConvNet代码详解 文章目录 GR-ConvNet代码详解前言一、utils1.dataset_processing1.image.py1.Iamge类2.DepthImage类3.WidthImage类 2.grasp.py1. _gr_text_to_no()方法2.GraspRectangles类3.GraspRectangle类3.Grasp类4.detect_grasps方法 3.generate_cornell_depth.py4.e…...

Excel自带傅里叶分析数据处理——归一化处理

在Excel工具中&#xff0c;默认情况下数据处理---傅里叶分析通常不进行归一化处理&#xff0c;需要用户手动进行归一化处理。 &#xff08;1&#xff09;傅里叶变换的原理 傅里叶变换将时域信号转换为频域信号&#xff0c;输出的是复数形式的频率分量&#xff0c;包含了幅值和…...

Centos7.6版本安装mysql详细步骤

操作步骤&#xff1a; 1.下载Linux版本Mysql并上传至linux系统中 2.解压mysql并查询系统中是否有相关软件存在以及配置mysql,启动mysql tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz rpm -qa|grep mysql ##查…...

寄宿学校:为自闭症儿童提供全面的教育和关爱

在这个多彩的世界里&#xff0c;每一个生命都值得被温柔以待&#xff0c;每一颗心灵都值得被悉心呵护。然而&#xff0c;自闭症儿童这一特殊群体&#xff0c;他们的世界却常常被误解和忽视。幸运的是&#xff0c;有一种教育模式——寄宿学校&#xff0c;正为这些孩子打开了一扇…...

搜狐快站怎么做网站/免费下载优化大师

使用conda安装时 进入虚拟环境进行执行命令就行了...

以前老网站/长沙网站seo哪家公司好

1.npm install vue-cli -g 全局的 2.vue -V 检查vue版本 3.vue init webpack demo(项目名称) 4.一直回车 eslint test e2e 都不安装 5.npm run dev 6.npm run build 打包发布转载于:https://www.cnblogs.com/rxfn/p/10869444.html...

做网站的费用入账/网站模板及源码

...

知名营销网站/如何让别人在百度上搜到自己公司

在一个排列中&#xff0c;如果一对数的前后位置与大小顺序相反&#xff0c;即前面的数大于后面的数&#xff0c;那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。一个排列中所有逆序总数叫做这个排列的逆序数。也就是说&#xff0c;对于n个不同的元素&am…...

电子商务网站规划流程/网络推广网站推广方法

转自&#xff1a;http://www.cnblogs.com/jcchen1987/p/4581651.html 关于boost算法 boost算法是基于PAC学习理论&#xff08;probably approximately correct&#xff09;而建立的一套集成学习算法(ensemble learning)。其根本思想在于通过多个简单的弱分类器&#xff0c;构建…...

大连手机自适应网站建设/seo模拟点击软件源码

POWER(2,3) 返回 2 的 3 次幂, SQUARE 返回给定表达式的平方。 语法 SQUARE ( float_expression ) SQRT 返回给定表达式的平方根。 语法 SQRT ( float_expression ) 顺便说 Access 的开方函数是 SQR ( float_expression )...