论文阅读:Realistic Noise Synthesis with Diffusion Models

这篇文章是 2025 AAAI 的一篇工作,主要介绍的是用扩散模型实现对真实噪声的仿真模拟

Abstract

深度去噪模型需要大量来自现实世界的训练数据,而获取这些数据颇具挑战性。当前的噪声合成技术难以准确模拟复杂的噪声分布。我们提出一种新颖的逼真噪声合成扩散器(Realistic Noise Synthesis Diffusor,RNSD)方法,利用扩散模型来应对这些挑战。通过将相机设置编码到一种时间感知的相机条件仿射调制(time - aware camera - conditioned affine modulation,TCCAM)中,RNSD 能够在各种相机条件下生成更逼真的噪声分布。此外,RNSD 集成了一个多尺度内容感知模块(multi - scale content - aware module,MCAM),使得能够生成在多个频率上具有空间相关性的结构化噪声。我们还引入了深度图像先验采样(Deep Image Prior Sampling,DIPS),这是一种基于深度图像先验的可学习采样序列,它在显著加速采样过程的同时,还能保持合成噪声的高质量。大量实验表明,我们的 RNSD 方法在多个指标下合成逼真噪声以及提升图像去噪性能方面,显著优于现有技术。

Introduction

在深度学习中,图像去噪是一个不适定问题,通常需要使用大量的数据对进行有监督训练。在 RGB 色彩空间中,一幅含噪图像 y \mathbf{y} y 可以通过以下公式建模为其无噪版本 s \mathbf{s} s 加上经过图像信号处理(ISP)后的噪声 n \mathbf{n} n

y = I S P ( s + n ) (1) \mathbf{y} = \mathbf{ISP}(\mathbf{s} + \mathbf{n}) \tag{1} y=ISP(s+n)(1)

与 RAW 格式图像中可线性建模且空间独立的噪声不同,RGB 色彩空间中的噪声呈现出以下特点:
不规则且多样的噪声分布:图像信号处理(ISP)的后处理参数,如自动白平衡(AWB)、色彩校正矩阵(CCM)和伽马校正(GAMMA),由于其依赖于传感器、感光度(ISO)、场景和曝光设置,会导致噪声在不同场景、通道、ISO 等级以及像素间呈现出非均匀的变化。
噪声的结构与空间相关性:与空间相关的 ISP 操作,包括去马赛克、降噪和锐化等,会给噪声引入局部结构模式,从而增强了噪声与信噪比之间的相关性。

大多数数据集依赖多帧平均法,这不仅获取难度大,而且无法提供多样的噪声类型,也不能解决结构性噪声问题。一些方法将噪声建模为高斯白噪声,忽略了真实噪声中存在的空间相关性。基于生成对抗网络(GAN)的方法试图对真实噪声分布进行建模,但由于缺乏严格的似然函数,常常面临不稳定性和模式崩溃问题,导致生成的噪声分布与真实噪声分布不匹配。相比之下,扩散模型因其严格的似然推导,在图像生成方面表现得更为稳定且多样。然而,它们尚未成功应用于合成噪声生成,这可能是由于针对具有空间相关性的复杂噪声分布,其条件设计不够完善。

在本文中,我们引入了逼真噪声合成扩散器(Realistic Noise Synthesize Diffusor, RNSD),这是一种基于扩散模型来合成逼真 RGB 噪声数据的新方法。RNSD 能够借助来自各种公开数据集的干净图像,生成大量与真实世界噪声分布极为相似的噪声图像。RNSD 生成的增强数据,在降噪和图像保真度方面,都显著提升了现有去噪模型的性能。

具体而言,RNSD 使用真实的含噪图像 y \mathbf{y} y 作为初始状态 x 0 \mathbf{x}_0 x0 来构建用于噪声生成的扩散模型。为了有效适应多样的噪声分布,我们提出了一种时间感知相机条件仿射调制(time - aware camera - conditioned affine modulation),称为 TCCAM。该模块对不同的相机设置进行编码,并在采样过程中采用时间自适应条件仿射变换,使得 RNSD 能够合成多样化且逼真的噪声。

此外,我们构建了一个多尺度内容感知模块(multi - scale content - aware module,简称 MCAM),它将干净图像的多尺度引导信息整合到扩散网络中。该模块能有效地引导生成与信号相关且具有空间相关性的噪声。

基于深度图像先验理论,即网络先学习低频成分,然后学习高频成分,我们开发了深度图像先验采样(Deep Image Prior Sampling,DIPS)方法。与去噪扩散隐式模型(DDIM)不同,DIPS 采用基于蒸馏的单步模型和衰减采样,将原本 1000 步的模型缩减至仅 5 步,而准确率仅损失 4%,显著提高了采样效率。
综上所述,我们的主要贡献如下:

  • 我们首次提出了一种基于扩散模型的真实噪声数据合成方法 RNSD
  • 我们设计了时间感知相机条件仿射调制(TCCAM),它能够更好地控制生成噪声的分布和强度。
  • 通过构建多尺度内容感知模块(MCAM),引入了多频信息的耦合,使得能够生成更逼真的、具有空间相关性的噪声。
  • 深度图像先验采样(DIPS):利用网络先学习低频成分再学习高频成分的深度图像先验特性,与 DDIM 相比,DIPS 将 1000 步的模型缩减至仅 5 步,而准确率仅损失 4%,从而提高了采样效率。
  • 我们的方法在多个基准测试和指标上取得了领先的成果,显著提升了去噪模型的性能。

Methodology

在这里插入图片描述

  • 图 2:(a) 通过扩散产生噪声的流程。(b) 我们的时空交叉注意力记忆模块(TCCAM)的流程。
    © 我们设计的带有多尺度交叉注意力模块(MCAM)的 UNet 架构

  • 我们提出了一种新颖的基于扩散的方法来合成逼真的噪声数据,称为 “基于扩散的真实噪声合成”(RNSD,见图 2(a))。

  • 我们的方法以真实含噪图像作为初始条件,并融入了时间感知相机条件仿射调制(TCCAM,见图 2(b))来控制结果。

  • 此外,我们引入了一个多尺度内容感知模块(MCAM,见图 2(c)),以引导生成与信号相关的噪声。

  • 最后,我们基于深度图像先验(DIPS,Ulyanov、Vedaldi 和 Lempitsky,2018 年)设计了一种可学习的加速采样方法,如算法 2 所示。

Noise Generation via Diffusion

传统的扩散模型通常在无噪声的风格数据上进行训练,这种模型能够从任意高斯噪声分布中采样出目标域图像。相比之下,我们将具有真实噪声分布的图像视为目标域图像。如图 2(a)所示,通过用具有真实噪声分布的数据 y \mathbf{y} y 替换 x 0 \mathbf{x}_0 x0,并经过简单设置,扩散模型就能从任意高斯噪声分布中采样出真实噪声。
具体而言,我们采用去噪扩散概率模型(DDPM,Ho、Jain 和 Abbeel,2020)的概率模型。在正向过程中,使用一个 T T T 步的马尔可夫链来最小化先验概率 q ( x T ∣ x 0 ) q(\mathbf{x}_T|\mathbf{x}_0) q(xTx0),也就是将 x 0 \mathbf{x}_0 x0 扩散为具有方差噪声强度 β t \beta_t βt 的纯高斯分布 x T \mathbf{x}_T xT

q ( x T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t x t − 1 , β t I ) (2) \begin{aligned} q(\mathbf{x}_T|\mathbf{x}_0)&=\prod_{t = 1}^{T}q(\mathbf{x}_t|\mathbf{x}_{t - 1})\\ q(\mathbf{x}_t|\mathbf{x}_{t - 1})&=\mathcal{N}(\mathbf{x}_t;\sqrt{1-\beta_t}\mathbf{x}_{t - 1},\beta_t\mathbf{I}) \end{aligned} \tag{2} q(xTx0)q(xtxt1)=t=1Tq(xtxt1)=N(xt;1βt xt1,βtI)(2)

其中, I \mathbf{I} I 是单位协方差矩阵,对于相邻的两个步骤,借助重参数化, x t \mathbf{x}_t xt 可以看作是从先验分布 $q(\mathbf{x}t | \mathbf{x}{t-1}) $ 中采样得到的,该分布被视为由 x t − 1 \mathbf{x}_{t-1} xt1 β t \beta_t βt 形成的高斯分布。

一般的采样过程是通过反向求解高斯马尔可夫链过程得到的,将其视为联合概率分布 p θ ( x 0 : T ) p_{\theta}(\mathbf{x}_{0:T}) pθ(x0:T) ,这可以理解为从上述高斯分布 x T \mathbf{x}_T xT 逐步去噪以获得采样结果 x 0 \mathbf{x}_0 x0

p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ t ) (3) \begin{aligned} p_{\theta}(\mathbf{x}_{0:T})&=p(\mathbf{x}_T)\prod_{t = 1}^{T}p_{\theta}(\mathbf{x}_{t - 1}|\mathbf{x}_t)\\ p_{\theta}(\mathbf{x}_{t - 1}|\mathbf{x}_t)&=\mathcal{N}(\mathbf{x}_{t - 1};\mu_{\theta}(\mathbf{x}_t,t),\Sigma_t) \end{aligned} \tag{3} pθ(x0:T)pθ(xt1xt)=p(xT)t=1Tpθ(xt1xt)=N(xt1;μθ(xt,t),Σt)(3)

其中 μ θ \mu_{\theta} μθ 是由网络估计的后验分布的均值, Σ t \Sigma_{t} Σt 是通过 β t \beta_t βt 正向计算得到的方差。我们引入了额外的信息,即干净图像 s \mathbf{s} s 和相机设置信息 c s \mathbf{cs} cs,以使整个过程更具可控性。从数学角度来看,该过程为:

p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ t , Σ t ) μ t = μ θ ( x t , s , c s , t ) (4) \begin{aligned} p_{\theta}(\mathbf{x}_{t - 1}|\mathbf{x}_t)&=\mathcal{N}(\mathbf{x}_{t - 1};\mu_{\mathbf{t}},\Sigma_t)\\ \mu_{\mathbf{t}}&=\mu_{\theta}(\mathbf{x}_t, s, \mathbf{cs}, t) \end{aligned} \tag{4} pθ(xt1xt)μt=N(xt1;μt,Σt)=μθ(xt,s,cs,t)(4)

考虑到相机设置( c s \mathbf{cs} cs)信息在不同采样步骤中的影响变化以及 RGB 域中噪声的空间相关性,我们制定了增强的条件机制 —— 时间感知相机条件仿射调制(TCCAM)和多尺度内容感知模块(MCAM),以实现噪声生成模块与基于扩散的图像采样框架之间更紧密的耦合。

TCCAM: Time-aware Camera Conditioned Affine Modulation
  • 算法 1:
    在这里插入图片描述

如算法 1 所示,常规的扩散模型学习网络参数 ϵ θ \epsilon_{\theta} ϵθ,以便在正向过程中从 x 0 \mathbf{x}_0 x0 x t \mathbf{x}_t xt 预测添加的噪声分量 ϵ t \epsilon_{t} ϵt。然而,真实的噪声分布由多种因素决定,包括 ISO 增益、快门速度、色温、亮度等。在不区分不同条件下的噪声分布的情况下,基于空间光度变化、ISO 变化和传感器变化,从复杂噪声中学习一种通用分布是具有挑战性的。
根本问题在于,噪声分布在不同条件下差异很大。例如,不同传感器的噪声可能呈现出完全不同的分布。在学习过程中,网络倾向于收敛到数据集的总体期望,从而导致固定模式的噪声模式,这使得生成的噪声与目标噪声之间存在差异。为了解决这个问题,我们引入了算法 1 中所示的五个因素。

c s = ϕ ( i s o , s s , s t , c t , b m ) (5) \mathbf{cs} = \phi (iso, ss, st, ct, bm) \tag{5} cs=ϕ(iso,ss,st,ct,bm)(5)

其中,iso 是感光度(ISO),ss 是快门速度,st 是传感器类型,ct 是色温,bm 是亮度模式。这些因素通过一种编码方法( ϕ \phi ϕ)被嵌入,作为相机设置 c s \mathbf{cs} cs 的特征向量,以控制噪声生成。这种显式先验缩小了网络的学习范围,使其能够逼近更复杂多变的噪声分布。相机设置的影响应该随采样步骤而变化。例如,与图像信号处理器(ISP)高度相关的传感器类型(st)决定了噪声的基本形式,其影响通常与图像内容中的高频信息相关联。当 t t t T T T 0 0 0 进行采样,从低频到高频恢复图像内容时,相机设置的影响逐渐增大。为了解决这个问题,我们提出了一种具有动态设置机制的时间感知相机条件仿射调制(TCCAM),其中不同因素的权重随采样步骤而变化。如图 2(b)所示,该过程如下:

γ , β = M L P 3 ( M L P 1 ( s i n u _ p o s ( t ) ) + M L P 2 ( c s ) ) F o u t p u t = γ ∗ F i n p u t + β (6) \begin{aligned} \gamma, \beta&=MLP_3(MLP_1(sinu\_pos(t)) + MLP_2(\mathbf{c}_s))\\ \mathbf{F}_{output}&=\gamma * \mathbf{F}_{input}+\beta \end{aligned} \tag{6} γ,βFoutput=MLP3(MLP1(sinu_pos(t))+MLP2(cs))=γFinput+β(6)

其中,使用多层感知器(MLP)将相机设置与采用正弦位置编码(sinu_pos)的采样步骤一起进行编码,以便在 UNet 的每一层生成仿射参数 β \beta β γ \gamma γ。这种方法通过对 UNet 中每一层的特征 F i n p u t \mathbf{F}_{input} Finput 应用仿射变换,实现了一种动态设置影响机制。

MCAM: Multi-scale Content-aware Module

真实的噪声分布与图像内容有着内在的联系,由于光子捕获和图像信号处理器(ISP)的处理,它在不同亮度区域会有所不同。受周等人(Zhou 等人,2020 年)关于噪声空间频率特性见解的启发,我们提出了一个多尺度内容感知模块(MCAM,见图 2(c)),用于对不同频率下噪声 - 图像的耦合进行建模。从数学角度来看,我们的方法如下:

F x t i = e n c o d e r i ( x t ) F s i = e n c o d e r i ( s ) , i = 1 , 2 , 3 F o i = d e c o d e r i ( C o n c a t ( F i , F s i , F x t i ) ) (7) \begin{aligned} \mathbf{F}_{\mathbf{x}_{t_i}}&=encoder_i(\mathbf{x}_t)\\ \mathbf{F}_{\mathbf{s}_i}&=encoder_i(\mathbf{s}),i = 1,2,3\\ \mathbf{F}_{\mathbf{o}_i}&=decoder_i(Concat(\mathbf{F}_i,\mathbf{F}_{\mathbf{s}_i},\mathbf{F}_{\mathbf{x}_{t_i}})) \end{aligned} \tag{7} FxtiFsiFoi=encoderi(xt)=encoderi(s),i=1,2,3=decoderi(Concat(Fi,Fsi,Fxti))(7)

其中,在编码器的三个下采样阶段,使用对称但不共享权重的编码器从 x t \mathbf{x}_t xt 和干净图像 s \mathbf{s} s 中提取特征。除了在 F i \mathbf{F}_i Fi F x t i \mathbf{F}_{\mathbf{x}_{t_i}} Fxti 之间的标准跳跃连接外,我们在三个上采样阶段融入了 F s i \mathbf{F}_{\mathbf{s}_i} Fsi 的多尺度特征。

Deep Image Prior Sampling(DIPS)

基于深度图像先验论文中的观察,即网络在学习高频噪声之前首先学习干净的低频成分,我们在去噪扩散概率模型(DDPM)采样过程中注意到了类似的模式。反向库尔贝克 - 莱布尼茨散度(AKLD)的下降随着采样从 1000 步推进而显示出越来越大的梯度,这表明基于扩散的真实噪声合成(RNSD)从低频内容过渡到高频噪声,如图 3 所示。由于去噪扩散隐式模型(DDIM)使用均匀的采样步骤,它与我们的噪声估计任务不太契合。因此,正如我们的实验所示,减少采样步骤的数量会导致性能大幅下降。
为了解决这个问题,我们提出了一种新的采样方式:

t = t l a s t + ( T − t l a s t ) e r ( i − 1 S − 1 ) − 1 e r − 1 , i = S : 1 (8) t = t_{last}+(T - t_{last})\frac{e^{r(\frac{i - 1}{S - 1})}-1}{e^{r}-1}, \quad i = S:1 \tag{8} t=tlast+(Ttlast)er1er(S1i1)1,i=S:1(8)

其中, T T T 是去噪扩散概率模型(DDPM)的采样步骤数, S S S 是基于深度图像先验(DIPS)的采样步骤数。 t l a s t t_{last} tlast 是第 0 步之前的最后一个采样步骤。由于边界效应,最后几步的生成效果较弱,所以当总采样步骤数减少时,将其置于重要步骤中。 r r r 控制采样密度的梯度。对于 T = 1000 T=1000 T=1000 S = 10 S=10 S=10,得到采样序列 [ 1000 , 572 , 327 , 186 , 106 , 59 , 33 , 18 , 9 , 4 , 0 ] [1000, 572, 327, 186, 106, 59, 33, 18, 9, 4, 0] [1000,572,327,186,106,59,33,18,9,4,0]
我们的基础版本,即基本的基于深度图像先验(DIPS - Basic),在保持质量的同时将采样步骤数减少到。此外,我们发现从步到步的低频学习可以有效地由一个单步模型替代,从而能够从更接近的截断步骤而不是进行采样。

我们的基础版本,即基本的基于深度图像先验(DIPS - Basic),在保持质量的同时将采样步骤数 S S S 减少到 30。此外,我们发现从 1000 步到 200 步的低频学习可以有效地由一个单步模型替代,从而能够从更接近的截断步骤 N = 200 N=200 N=200 而不是 T = 1000 T=1000 T=1000 进行采样。其具体公式如下:

∇ θ ∥ ψ θ ( x T , t N ) − ϵ θ ( x N , t N ) ∥ (9) \nabla_{\theta} \left\lVert \psi_{\theta}(x_T, t_N) - \epsilon_{\theta}(x_N, t_N) \right\rVert \tag{9} θψθ(xT,tN)ϵθ(xN,tN)(9)

其中,单步模型 ψ θ \psi_{\theta} ψθ 是从预训练模型 ϵ θ \epsilon_{\theta} ϵθ 中提炼出来的,这使我们能够降低初始采样位置,并构建确定性映射,从而在保持质量的同时实现 5 步采样。如算法 2 所示,这种方法被称为高级版基于深度图像先验(DIPS - Advanced)。

  • 算法 2
    在这里插入图片描述

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

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

相关文章

群晖Alist套件无法挂载到群晖webdav,报错【连接被服务器拒绝】

声明:我不是用docker安装的 在套件中心安装矿神的Alist套件后,想把夸克挂载到群晖上,方便复制文件的,哪知道一直报错,最后发现问题出在两个地方: 1)挂载的路径中,直接填 dav &…

使用C# 如何获取本机连接的WIFI名称[C# ---1]

前言 楼主最近在写一个WLAN上位机,遇到了使用C#查询SSID 的问题。CSDN上很多文章都比较老了,而且代码过于复杂。楼主自己想了一个使用CMD来获得SSID的方法 C#本身是没有获得WINDOWS网路信息的能力,必须要用系统API,WMI什么的&…

玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…

实战:如何快速让新网站被百度收录?

本文来自:百万收录网 原文链接:https://www.baiwanshoulu.com/22.html 要让新网站快速被百度收录,可以采取以下实战策略: 一、网站基础优化 网站结构清晰:确保网站的结构简洁清晰,符合百度的抓取规则。主…

全程Kali linux---CTFshow misc入门(25-37)

第二十五题: 提示:flag在图片下面。 直接检查CRC,检测到错误,就直接暴力破解。 暴力破解CRC的python代码。 import binascii import struct def brute_force_ihdr_crc(filename): # 读取文件二进制数据 with open(filen…

解决Django非ORM模型提示初始化request问题

提问 Django在DRF时候自定义显示一些非model的字段提示TypeError: Field.__init__() got an unexpected keyword argument request 解答1 错误提示 TypeError: Field.__init__() got an unexpected keyword argument request 显示在创建序列化器实例时,传递了一个…

pytorch实现简单的情感分析算法

人工智能例子汇总:AI常见的算法和例子-CSDN博客 在PyTorch中实现中文情感分析算法通常涉及以下几个步骤:数据预处理、模型定义、训练和评估。下面是一个简单的实现示例,使用LSTM模型进行中文情感分析。 1. 数据预处理 首先,我…

【C语言指针】指针和函数

文章目录 一、前言二、指针函数2.1 概念2.2 定义2.3 具体例子 三、函数指针3.1 概念3.2 定义3.3 具体例子3.4 回调函数3.4.1 概念3.4.2 例子13.4.3 例子2 四、函数指针数组4.1 概念4.2 定义4.3 具体例子 五、函数指针数组的指针5.1 概念5.2 定义5.3 具体例子 一、前言 关于指针…

初识c语言(关键字)

前言: 注意: 变量的名称不能是关键字 变量的命名: 1、有意义 int age; flat salary; 2、名字必须是字母、数字、下划线组成,不能有特殊字符, 同时不能以数字开头 3、变量的命名不能是关键字 内容: …

FFmpeg(7.1版本)编译:Ubuntu18.04交叉编译到ARM

一、本地编译与交叉编译 1.本地编译 ① 本地编译:指的是在目标系统上进行编译的过程 , 生成的可执行文件和函数库只能在目标系统中使用。 如 : 在 Ubuntu中,本地编译的可执行文件只能在Ubuntu 系统中执行 , 无法在 Windows / Mac / Android / iOS 系统中使用 ; 在 Ubuntu…

对比DeepSeek、ChatGPT和Kimi的学术写作撰写引言能力

引言 引言部分引入研究主题,明确研究背景、问题陈述,并提出研究的目的和重要性,最后,概述研究方法和论文结构。 下面我们使用DeepSeek、ChatGPT4以及Kimi辅助引言撰写。 提示词: 你现在是一名[计算机理论专家]&#…

LabVIEW微位移平台位移控制系统

本文介绍了基于LabVIEW的微位移平台位移控制系统的研究。通过设计一个闭环控制系统,针对微位移平台的通信驱动问题进行了解决,并提出了一种LabVIEW的应用方案,用于监控和控制微位移平台的位移,从而提高系统的精度和稳定性。 项目背…

javaEE-6.网络原理-http

目录 什么是http? http的工作原理: 抓包工具 fiddler的使用 HTTP请求数据: 1.首行:​编辑 2.请求头(header) 3.空行: 4.正文(body) HTTP响应数据 1.首行:​编辑 2.响应头 3.空行: 4.响应正文…

开启 AI 学习之旅:从入门到精通

最近 AI 真的超火,不管是工作还是生活里,到处都能看到它的身影。好多小伙伴都跑来问我,到底该怎么学 AI 呢?今天我就把自己学习 AI 的经验和心得分享出来,希望能帮到想踏入 AI 领域的朋友们! 一、学习内容…

【JAVA基础】双亲委派

双亲委派可以简单理解为, 当收到加载请求时, 会依次向上加载 ; 只有当父类加载器无法完成加载请求时,子类加载器才会尝试自己去加载。 工作原理 类加载请求传递:当应用程序需要加载一个类时,比如通过ClassLoader.loadClass()方法&#xff0…

嵌入式经典面试题之操作系统(一)

文章目录 1 请你说说常用的Linux命令有哪些?2 在linux中如何创建一个新的目录?3 Linux中查看进程运行状态的指令、tar解压文件的参数。4 在linux中,文件权限如何修改?5 怎样以root权限运行某个程序?6 在linux里如何查看…

排查定位jar包大文件

解压 JAR 包: mkdir jar_contents unzip your-jar-file.jar -d jar_contents统计各文件大小: du -ah jar_contents | sort -rh | head -n 20这会列出 JAR 包中最大的文件或目录,方便你定位大文件。 方法 2:使用 jar 工具查看文件…

OpenCV:闭运算

目录 1. 简述 2. 用膨胀和腐蚀实现闭运算 2.1 代码示例 2.2 运行结果 3. 闭运算接口 3.1 参数详解 3.2 代码示例 3.3 运行结果 4. 闭运算的应用场景 5. 注意事项 相关阅读 OpenCV:图像的腐蚀与膨胀-CSDN博客 OpenCV:开运算-CSDN博客 1. 简述…

Python-基于PyQt5,pdf2docx,pathlib的PDF转Word工具

前言:日常生活中,我们常常会跟WPS Office打交道。作表格,写报告,写PPT......可以说,我们的生活已经离不开WPS Office了。与此同时,我们在这个过程中也会遇到各种各样的技术阻碍,例如部分软件的PDF转Word需要收取额外费用等。那么,可不可以自己开发一个小工具来实现PDF转…

C++中的类与对象(下)

上一节我们将类与对象中一个比较难的也是一个比较重要的模块学习了,在这节主要是一些细节上的补充。 文章目录 目录 前言 一、初始化列表 初始化列表的性质 初始化列表的总结 二、类型转换 C中的类型转换 三、static成员 static的特点 一般情况下构造函数调用顺序&a…