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

空域降噪、频域降噪和时域降噪

目录

算法原理:

1.图像噪声

2.图像中常见的噪声的类型

3.不同域的定义

4.空域降噪

4.1.空域降噪的定义:

4.2.思想核心:

4.3.局部的线性算法

高斯降噪

4.4.非局部算法

5.频域降噪

傅里叶降噪:

小波降噪:

DCT降噪

6.BM3D

7.时域噪声简介

8.时域降噪的流程图

9.时域降噪的核心

FIR & IIR filter简介

FIR filter :有限脉冲响应滤波器

IIR filter:无限长脉冲响应数字滤波器

FIR & IIR filter结构图示

10.motion detection/ motion estimation

像素值差判断(单点或block)

光流法

11.时域降噪和encoder

12.motion compsensation

13.时域降噪的难点


算法原理:

降噪算法——空域降噪:

  • 降噪的过程其实就是减小噪声方差的过程,空域降噪一般多用于单帧降噪,滤波器直接在图像阈(空域)中滤除噪声,其一般思想为:对某pixel邻域的pixels进行加权平均。
  • 高斯降噪:高斯滤波是线性滤波,和像素值无关,只与距离有关,距离目标像素越远其像素   权重越小,而   值越大表示中心pixel对周围pixel依赖越大。
  • 双边滤波:双边滤波是非线性滤波,不仅和距离有关,还和相邻像素的相似度有关(如果pixel值接近则权重几乎不衰减),总体可以达到保边去噪的效果,ABF降噪模块采用的双边滤波。
  • 非局部滤波:前面的滤波只考虑了某个pixel领域n*n的像素,没有考虑到其他“领域的领域”(一般是与它有相似结构),非局部滤波会考虑多个领域进行降噪处理。

降噪算法——频域降噪:

  • 频域降噪一般思想为:将图像信号变换到频率域,在频率域将信号和噪声分开。常用的频域降噪:小波降噪、DCT降噪、傅里叶降噪。
  • WNR降噪模块就是采用的小波降噪,由于噪声的小波系数较小,信号的小波系数较大。可以采用删除小波系数较小的信号分量,再还原回原信号的方法,进而达到降噪。

降噪算法——时域降噪:

  • 时域噪声是空域噪声在时间上波动的一种描述,表现为跳动的噪声。
  • 多帧平均降噪法:FIR filter:计算量大,但不需要迭代,多用于图像;IR filter:单帧等效计算量小,但需要迭代,多用于视频。
  • 域降噪流程:对齐、融合;网格划分--->>>KLT光流法特征点追踪--->>>运动检测与运动补偿--->>>像素对齐--->>>融合。

1.图像噪声

噪声在图像上常表现为一引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。

2.图像中常见的噪声的类型

  • 高斯噪声,也称为正态噪声,其统计特性服从正态分布。一种较为泛用的噪声模型。

一般我们常见的是高斯+泊松的噪声模型。我们需要知道的是,高斯噪声只和位置有关,而与信号的大小无关。泊松噪声是和信号的大小呈正相关的分布。结合起来的噪声模型如下图所示。

  • 椒盐噪声,也成为双脉冲噪声。在早期的印刷电影胶片上,由于胶片化学性质的不稳定和播放时候的损伤,会使得胶片表面的感光材料和胶片的基底欠落,在播放时候,产生一些或白或黑的损伤。(例如坏点)

FPN,fix pattern noise(以一种固定的形式存在的噪声)

3.不同域的定义

  • 空域:自变量为空间坐标

           空间(spatial domain)也叫空间域,即所说的像素域,在空域的处理就是在像素级的处理,如在像素级的图像叠加。固定大小的窗口内(如3x3、7x7、9x9等),Raw域上,相同pattern的相邻像素之间发

           生值的跳变;或YUV域中,Y或者UV通道值发生跳变。

  • 时域:是描述数学函数或物理信号对时间的关系,自变量是时间,即横轴是时间,纵轴是信号的变化

          在不考虑抖动及视场变化的情况下,基于细节纹理的稳定性,相邻几帧之间,同位置像素之间发生值的变化时,根据需要做特定的滤波处理。

  • 频域:是描述信号在频率方面特性时用到的一种坐标系,自变量是频率,即横轴是频率,纵轴是该频率信号的幅度,也就是通常说的频谱图

          根据噪声频率的分布规律,按频率段提取图像特征后,对特定频率段做不同强度的滤波处理。

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的2.56~4倍;采样定理又称奈奎斯特定理。

4.空域降噪

4.1.空域降噪的定义:

空域降噪在图像横向和纵向的空间维度上采取的降噪措施,是针对单帧画面进行处理降噪,可以有效滤除空域噪声,但会损失一定程度的边缘细节。

4.2.思想核心:

平均(加权)一些相似的像素,去得到噪声更小的像素值(在一个邻域内,当前像素和周围像素的加权求和)。

大部分空域降噪解决的问题都是: 怎么计算两个像素的相似性权重。

根据此可以分为三类算法:

  • 局部的线性算法: 高斯降噪
  • 局部的非线性算法:中值滤波、双边滤波(有些人将其单独列为各向异性滤波)
  • 非局部算法;

4.3.局部的线性算法

高斯降噪

当我们处理下面的像素时,针对与上式不同的sigma,会形成不同权重的滤波核,从而产生不同的滤波效果:

                                                      

sigma=0.5
sigma=0.3

         

但是高斯滤波是一种和像素值无关只和空间距离有关的滤波方式,因此具有一定的局限性。不符合真实中降噪,会损失细节很多细节,如下图所示。

降噪前 
降噪后

双边滤波

双边滤波与高斯滤波相比,对于图像的边缘信息可以更好的保存,其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。

空间距离:指的是当前点与中心点的欧式距离。空间域高斯函数为:

灰度距离:   指的是当前点灰度域中心点灰度的差的绝对值。值域高斯函数为:

双边滤波器用于平滑图像并减少噪声,同时保留边缘,是一种非线性双边滤波器,比高斯滤波器多了一个灰度距离的概念( sigma_i )。

我们可以看到,上式双边滤波相当于是一个高斯滤波再乘以一项,这一项就是考虑了像素间的灰度相似性。同样的在处理下面的像素时:

sigma=0.5
考虑像素之间的值的联系的值,
还有一次计算,比如3和18

采用双边滤波是可以保留大的边缘,但是无法处理小的边缘:

滤波前

滤波后

上图大边缘保留住了,但是小细节被抹平了,因此双 边滤波有时在学术上都是属于smooth领域。

4.4.非局部算法

非局部均值滤波(Non-Local Means,NLM)是Buades等人于2005年在论文“A non-localalgorithm for image denoising”中提出的对传统邻域滤波方法的一种改进滤波,考虑到了图像

的自相似性质,它充分利用了图像中的冗余信息,在去噪的同时能够最大程度的保持图像的细节特征。它利用了整幅图像来进行去噪,以图像块为单位在图像中寻找相似区域,

再对这些区域求平均,能够比较好地去掉图像中存在的高斯噪声。

思想: 根据图像块的相似性来计算像素的相似性权重

非局部并不是指的图像块加权求和,而是指的是求得权重时采用图像块。

例如:

我们使用3和18计算时,使用以3为中心的3*3的块和使用以18为中心 的3*3的块:

w=- exp((3-13)^2+(15-6)^2+(100-9)^2+(6-15)^2+(3-18)^2+(6-20)^2+(8-21)^2+(15-35)^2+(18-0)^2))./(2*sigma^2)

5.频域降噪

常见的有:

(1)傅里叶降噪

(2)小波降噪

(3)DCT 降噪

思想核心:

                利用信号在空间上的连续性,将图像信号变换到频率域,在频率域将信号和噪声分开,进而对信号降噪。

傅里叶降噪:

核心原理:

                  傅里叶变换:任何周期函数都可以表示为不同频率的正弦和/或余弦之和的形式。傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,

其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。

傅里叶提出这句话:任何周期函数都由多个不同的正弦波(sin和cos)叠加构成。如下图,频域由若干个正弦波构成,时域的矩形波可以由多个正弦波叠加构成。

小波降噪:

小波变换(wavelet transform,WT)是一种新的变换分析方法,能够在时间(空间)频率的局部化分析,通过伸缩平移运算对信号(函数)逐步进行多尺度细化,最终达到高频处时间细分,低频处频率细分,能自动适应时频信号分析的要求。小波降噪一般指基于小波变换的图像降噪。图像信号通过小波变换后,信号产生的小波系数含有信号的重要信息,将信号经小波分解后的小波系数较大,噪声的小波系数较小,并且噪声的小波系数要小于信号的小波系数。

 一般的处理逻辑是:将图像使用小波基进行分解,一般会分为HH,HL,LH,LL(这里的L代表low低频,H代表High高频,所以HH可以认为是高高频)

下图是分解为三个频段:HH,HL,LH

原图
HH
HL 
LH

结论: 在小波域,噪声的小波 系数相对较小。所以经常采用将较小的小波系数丢掉的方法降噪,因此小波降噪经常成为小波收缩。

    将比较小的值收缩砍掉      

 在处理小波的系数时,有两种方式:1、软收缩 2、硬收缩

软收缩
硬收缩

          

DCT降噪

DCT为离散余弦变换,是在DFT(离散傅里叶变换)的基础上推导出来的,是DFT的一种特殊形式。在DFT傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数就只包含余弦项,

再将其离散化(DFT)可导出该余弦项的余弦变换就是离散余弦变换(DCT)。

离散余弦变换被展开的函数是实偶函数,因此离散余弦变换相当于一个长度是其本身两倍的离散傅里叶变换,并且离散余弦变换后的函数仍然为一个实偶函数。一维的DCT变换公式如下:

6.BM3D

BM3D算法是图像与视频去噪领域效果较好的算法,它结合空域思想和频域转换变换的方法来提升图像效果,其主要分为两步骤:1、基础估计;2、最终估计。每一步又可分为三小步:

  1. 分块组合
  2. 协同滤波
  3. 整合

基础估计

  1. 分块组合针对图像目标块,通过滑动搜索框的方式最多找到N个相似块,为了避免噪声的影响,将图像经过DCT变换后再采用欧式距离的方式衡量相似图,按照从小到大进行排序,选择其中的N块组成三维数组。
  2. 协同滤波三维数组叠加之后,将每个块同一位置的像素点构成数组,采用硬阈值的方式将小于超参数的值置于0,同时统计非零成分的数量,作为后续权重的参考,最后进行三维矩阵逆变换。
  3. 整合将逆变换后的块放回原位置,利用非零成分数量统计叠加数权重,最后将叠放后的图除以每个点的权重就得到基础估计的图像。

7.时域噪声简介

就是普通的空域噪声,但是在时间域上会波动,例如有些手机在预览上有很多跳动的噪点。

我们处理时间噪声的方法就是多帧平均。

单帧 
叠加50帧之后再拉亮

在上图中,我们左图的亮度很低,我们在进行tuning的时候,如果噪声很大的情况下, 我们会有倾向于亮度来“藏噪”;所以当我们可以去掉这些噪声之后我们就可以增加图片的亮度来获得一个对人眼更加友好的观感;所以时域降噪不光是把噪声减小了,同时在噪声小的情况下,我们还可以把亮度提亮来提高画面质量。

单帧图像
时域降噪处理之后

如上左图所示,随着我们叠加的帧越多,噪声的等级越往下降。从理论上分析,我们使用n帧进行平均,可以把噪声降低n0.5。上右图给出不同频率噪声的表现。

8.时域降噪的流程图

It作为当前降噪帧,Iref t-1作为当前参考帧(It帧已处理后的前一帧),两帧通过运动区域的检测,对比出噪点的变化,然后在运动补偿中做后处理,最后将两帧做融合处理,效果如下图所示。

9.时域降噪的核心

FIR & IIR filter简介

FIR filter :有限脉冲响应滤波器

缺点: 计算量大;

优点: 不需要迭代,可以并行计算;

            针对图像的使用多一些。

IIR filter:无限长脉冲响应数字滤波器

缺点: 单帧等效计算量小;

优点:硬件开销比较小,IIR可以用更少的阶数取得和FIR一样的效果。

           针对视频的使用多一些。

举例:如果我们取5帧做处理,FIR滤波器会在相机拍完5帧后,把所有图片取来做统一计算处理,然而IIR滤波器会在每一帧拍完后取该帧的1/n来做处理。在计算量上总体是IIR的计算量比较大,FIR滤波器大多用在美图等模式,

IIR滤波器主要针对视频,录像,监控等情况下。

FIR & IIR filter结构图示

FIR filter :有限脉冲响应滤波器

IIR filter:无限长脉冲响应数字滤波器

二阶IIR

10.motion detection/ motion estimation

用于检测当前像素是否移动,有些也会求得motion vector(运动矢量,检测当前帧和上一帧移动了几个像素)。

做的不好: (1)把运动当成了不运动会导致拖影

                   (2)受到噪声等影响,将不运动的误判为运动的,会导致噪声消除不干净

常见方法:

  • 像素值差判断(单点或block)

          dif>th 运动,dif<th 静止

如上图所示,我们对于同一个块的位置在时域上的不同帧上做减法,这个减法可以给予单个像素也可以基于块,然后基于差异的结果判断是静止还是运动。

  • 光流法

利用光流场法实现目标检测的基本思想是:首先计算图像中每一个像素点的运动向量,即建立整幅图像的光流场。如果场景中没有运动目标,则图像中所有像素点的运动向量应该是连续变化的;

如果有运动目标,由于目标和背景之间存在相对运动,目标所在位置处的运动向量必然和邻域(背景)的运动向量不同,从而检测出运动目标。

11.时域降噪和encoder

也有时域降噪算法的运动估计是从encoder模块获取的运动估计的值来进行算法的计算的

12.motion compsensation

当我们拿到运动矢量之后,就可以根据运动矢量进行运动补偿,但是

做的不好:(1)把运动当成了不运动会导致拖影(多用于手机,安防监控较少使用)

                  (2)受到噪声等影响,将不运动的误判为运动的,会导致噪声消除不干净。

参考帧
当前帧

所以当我们知道运动矢量之后可以使用类似于右侧公式得到最后的输出: I_out=alpha*Ireft-1(i,j)+(1-alpha)*It(i+2,j-100)

将上图看成一个坐标系,步行中人的位置有x,y轴,lref为上一帧,lt为当前帧,我们需要检测相同像素点或者块移动到不同位置代入到函数中计算出运动的补偿。

式中的a1可以参考下图得到:                                                      

Dif为lref(上一帧)和It(当前帧)的差异程度,Alpha为坐标系中不同差异程度得到了一个比例系数,然后我们可以通过上述函数,使用alpha系数讲当前帧和上一个参考帧融合得出新图。

13.时域降噪的难点

(1)如何平衡拖影和降噪效果。

在手机调试过程中,有时候运动检测算法未能识别出运动的物体,就会产生拖影,当然另外如果快门和曝光时间设置的不合理,同样会产生拖影。

(2)在硬件设计中需要平衡带宽和片上mem 的关系。(参考帧读入读出消耗极大)

(3)在手机系统中平衡运动补偿和降噪效果的关系。(运动补偿的一个大缺点在于在块之间引入的非连续性,通常称为块效应。当块效应严重时,

   解码图像看起来会有像马赛克一样的效果,严重影响视觉质量。另外一个缺点是,当高频分量较大时,会引起振铃效应。)

振铃效应

相关文章:

空域降噪、频域降噪和时域降噪

目录 算法原理&#xff1a; 1.图像噪声 2.图像中常见的噪声的类型 3.不同域的定义 4.空域降噪 4.1.空域降噪的定义&#xff1a; 4.2.思想核心&#xff1a; 4.3.局部的线性算法 高斯降噪 4.4.非局部算法 5.频域降噪 傅里叶降噪&#xff1a; 小波降噪&#xff1a; …...

Cornerstone3D:了解Nifti文件,并查看元数据

Nifti 全称Neuroimaging Informatics Technology Initiative是一种专为存储医学和神经影像数据而设计的文件格式。设计目的是高效的存储三维或四维图像数据&#xff0c;同时将相关的元数据紧凑地嵌入文件中。Nifti文件的组成&#xff1a;头信息&#xff08;元数据&#xff09;…...

设计模式の状态策略责任链模式

文章目录 前言一、状态模式二、策略模式三、责任链模式 前言 本篇是关于设计模式中的状态模式、策略模式、以及责任链模式的学习笔记。 一、状态模式 状态模式是一种行为设计模式&#xff0c;核心思想在于&#xff0c;使某个对象在其内部状态改变时&#xff0c;改变该对象的行为…...

DevOps流程CICD之Jenkins使用操作

一、jenkins的docker-compose安装部署 请参考 jenkins的docker安装部署配置全网最详细教程-CSDN博客 二、创建repository 三、创建ssh 四、创建视图 五、创建任务 六、配置gitlab钩子 七、自动构建部署CI/CD验证...

【玩转23种Java设计模式】行为型模式篇:备忘录模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…...

Unity Shader TexelSize的意义

TexelSize在制作玻璃折射效果时会用到。 // Get the normal in tangent space fixed3 bump UnpackNormal(tex2D(_BumpMap, i.uv.zw)); // Compute the offset in tangent space float2 offset bump.xy * _Distortion * _RefractionTex_TexelSize.xy; i.scrPos.xy offset * i…...

三、STM32MP257系列之定制Yocto Machine

文章目录 STM32MP257系列之定制的Yocto Machine1. TFA 定制2. OPTEE OS定制3. Uboot 定制3.1 创建 board3.2 创建 board的头文件3.3 创建 board的配置文件3.4 添加我们自己的dtb文件3.5 生成新patch打包到uboot recipe中3.6 修改yocto中的配置 4. Kernel 定制4.1 定制设备树 5.…...

小程序信息收集(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…...

使用 Docker 搭建 Drogon 框架

使用 Docker 搭建 Drogon 框架 Drogon 是一个基于 C 的高性能 Web 框架&#xff0c;支持异步 I/O 和协程。使用 Docker 可以快速搭建 Drogon 开发环境&#xff0c;避免依赖冲突和配置问题。 以下是使用 Docker 搭建 Drogon 框架的详细步骤&#xff1a; 1. 准备工作 安装 Doc…...

【Linux报告】实训一:GNME桌面环境的设置及应用

实训一&#xff1a;GNME桌面环境的设置及应用 【练习1】在图形模式和文本模式下登录Linux系统。 1、开启Linux虚拟机。 答&#xff1a;打开此虚拟机如图所示 2、观察屏幕上显示的启动信息。 3、当系统启动到图形界面时&#xff0c;用普通用户身份登录。 答&#xff1a;如图…...

活动预告 |【Part1】Microsoft Azure 在线技术公开课:基础知识

课程介绍 参加“Azure 在线技术公开课&#xff1a;基础知识”活动&#xff0c;培养有助于创造新的技术可能性的技能并探索基础云概念。参加我们举办的本次免费培训活动&#xff0c;扩充自身的云模型和云服务类型知识。你还可以查看以计算、网络和存储为核心的 Azure 服务。 活…...

vulnhub靶场【Hogwarts】之bellatrix

前言 靶机&#xff1a;hotwarts-dobby&#xff0c;ip地址为192.168.1.69 攻击&#xff1a;kali&#xff0c;ip地址为192.168.1.16 都采用虚拟机&#xff0c;网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1/24扫描发现主机 信息收集 使用nmap扫描端…...

移动 APP 设计规范参考

一、界面设计规范 布局原则&#xff1a; 内容优先&#xff1a;以内容为核心进行布局&#xff0c;突出用户需要的信息&#xff0c;简化页面导航&#xff0c;提升屏幕空间利用率.一致性&#xff1a;保持界面元素风格一致&#xff0c;包括颜色、字体、图标等&#xff0c;使用户在…...

HarmonyOS:@Require装饰器:校验构造传参

一、前言 Require是校验Prop、State、Provide、BuilderParam和普通变量(无状态装饰器修饰的变量)是否需要构造传参的一个装饰器。 说明 从API version 11开始对Prop/BuilderParam进行校验。 从API version 11开始&#xff0c;该装饰器支持在元服务中使用。 从API version 12开…...

github提交不上去,网络超时问题解决

问题出现的原因&#xff1a; DNS服务器数据不同步&#xff0c;github的服务器发送迁移&#xff0c;在本地缓存的ip地址现在无效了。 解决方案&#xff1a; 1&#xff09;点击这里&#xff0c;查询github.com最新的ip地址 2.0&#xff09;编辑linux系统地址缓存文件&#x…...

国产数据库OceanBase从入门到放弃教程

1. 介绍 是由蚂蚁集团&#xff08;Ant Group&#xff0c;原蚂蚁金服&#xff09;自主研发的分布式关系型数据库。它旨在解决海量数据存储和高并发访问的问题&#xff0c;特别适合金融级应用场景&#xff0c;如支付宝等对数据一致性、可靠性和性能有极高要求的服务。以下是关于…...

风力涡轮机缺陷检测数据集,91.4%准确识别率,18912张图片,支持yolo,PASICAL VOC XML,COCO JSON格式的标注

风力涡轮机缺陷检测数据集&#xff0c;91.4&#xff05;准确识别率&#xff0c;18912张图片&#xff0c;支持yolo&#xff0c;PASICAL VOC XML&#xff0c;COCO JSON格式的标注 数据集下载&#xff1a; &#xff59;&#xff4f;&#xff4c;&#xff4f; &#xff56;&#…...

Rabbitmq追问2

分析rabbitmq 默认使用姿势是什么 direct fanout还是什么 public void convertAndSend(String exchange, String routingKey, Object object, CorrelationData correlationData) throws AmqpException { this.send(exchange, routingKey, this.convertMessageIfNecessary(obje…...

郑州时空-TMS运输管理系统 GetDataBase 信息泄露漏洞复现

0x01 产品简介 郑州时空-TMS运输管理系统是一款专为物流运输企业设计的综合性管理软件,旨在提高运输效率、降低运输成本,并实现供应链的协同运作。系统基于现代计算机技术和物流管理方法,结合了郑州时空公司的专业经验和技术优势,为物流运输企业提供了一套高效、智能的运输…...

如何使用React,透传各类组件能力/属性?

在23年的时候&#xff0c;我主要使用的框架还是Vue&#xff0c;当时写了一篇“如何二次封装一个Vue3组件库&#xff1f;”的文章&#xff0c;里面涉及了一些如何使用Vue透传组件能力的方法。在我24年接触React之后&#xff0c;我发现这种扩展组件能力的方式有一个专门的术语&am…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...