SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型|文献速递-基于深度学习的病灶分割与数据超分辨率
Title
题目
SPIRiT-Diffusion: Self-Consistency Driven Diffusion Model for Accelerated MRI
SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型
01
文献速递介绍
磁共振成像(MRI) 在临床和研究领域被广泛应用。然而,其长时间的采集过程仍然是一个主要限制,导致在空间分辨率、时间分辨率和覆盖范围之间存在权衡。因此,如何从有限的 k-空间数据中重建高质量的 MR 图像以加速采集,成为研究的热点。近年来,压缩感知(CS) 和 深度学习(DL) 在 MR 重建领域取得了显著进展。这些方法利用图像先验信息创建手工设计或可学习的正则化,并将其与数据一致性项结合,用以解决 MR 重建中的逆问题。
最近,基于得分的扩散模型 已成为 MR 重建中的一种强大深度生成先验这些模型依赖于前向和反向随机微分方程(SDEs)来编码和解码(生成)图像。前向 SDE 包括一个漂移项,表示前向过程的确定性趋势,以及一个扩散项,表示随机波动。例如,在方差保持(VP)SDE 中,漂移项线性描绘了能量减少的确定性趋势,表明图像信号的均值会确定性地衰减到零。反向 SDE 是从前向 SDE 推导出来的,通过边际概率密度的得分函数来指导图像重建。与传统方法不同,基于得分的 MR 重建学习的是数据分布,而不是 k-空间数据和图像之间的端到端映射,这使得无监督学习成为可能,并且有助于适应分布外的数据。已有的研究表明,这种方法在 MR 重建中取得了很好的效果。
扩散模型在 MRI 中已经取得了成功。目前,许多基于扩散模型的重建方法主要设计在图像域,依赖于单个线圈的空间灵敏度图(CSM)作为多通道图像的加权函数。然而,准确地测量 CSM 是一个挑战,尤其是在视场(FOV)受限时 或当存在相位奇点时 , 。即使是微小的灵敏度估计误差,也可能导致线圈图像和采集的 k-空间数据之间的不一致,从而导致重建图像中的伪影。另一方面,直接插值缺失的 k-空间数据可以规避与 CSM 估计相关的挑战,这在 k-空间并行成像(PI)方法中得到体现,如 GRAPPA 、SPIRiT 等方法。这些方法通过估计平移不变的插值核,描述多通道 k-空间数据之间的冗余先验,从而使得缺失的 k-空间数据能够在较低的灵敏度估计误差下进行估计。因此,k-空间插值方法相比图像域方法展现出了更大的鲁棒性。基于这一点,依赖 k-空间插值的扩散模型可能继承了对不准确 CSM 估计的鲁棒性。此外,这种方法结合了通道冗余和数据分布的先验,从而提高了在高加速条件下插值缺失 k-空间数据的准确性 。然而,目前的扩散模型主要是在图像域内构建的,因此不能直接应用于这种情况。
为了应对这一问题,我们从优化的角度重新评估了传统的 k-空间插值 SPIRiT 模型。通过将 SPIRiT 模型的迭代算法视为某些 SDEs 的离散欧拉形式,我们从这一角度获得灵感,提出了一种基于扩散的 MR 重建方法。在这种方法中,SPIRiT 的自一致性项作为 SDE 中的主要漂移系数起着关键作用。此外,CSM 被引入到扩散系数中,以准确计算扰动核的均值和方差。虽然我们提出的方法仍需要纳入 CSM,但其主要关注的是多通道 k-空间插值,而不是基于 CSM 合成的单通道图像重建。因此,我们提出的模型展现出了对不准确灵敏度估计的鲁棒性。由于该方法在自一致性方面受到 SPIRiT 启发,我们将其称为 SPIRiT-Diffusion。
Aastract
摘要
Diffusion models have emerged as a leadingmethodology for image generation and have proven successful in the realm of magnetic resonance imaging (MRI)reconstruction. However, existing reconstruction methodsbased on diffusion models are primarily formulated in theimage domain, making the reconstruction quality susceptible to inaccuracies in coil sensitivity maps (CSMs). k-spaceinterpolation methods can effectively address this issue butconventional diffusion models are not readily applicablein k-space interpolation. To overcome this challenge, weintroduce a novel approach called SPIRiT-Diffusion, whichis a diffusion model for k-space interpolation inspiredby the iterative self-consistent SPIRiT method. Specifically, we utilize the iterative solver of the self-consistentterm (i.e., k-space physical prior) in SPIRiT to formulatea novel stochastic differential equation (SDE) governingthe diffusion process. Subsequently, k-space data canbe interpolated by executing the diffusion process. Thisinnovative approach highlights the optimization model’srole in designing the SDE in diffusion models, enablingthe diffusion process to align closely with the physicsinherent in the optimization model-a concept referred toas model-driven diffusion. We evaluated the proposedSPIRiT-Diffusion method using a 3D joint intracranial andcarotid vessel wall imaging dataset. The results convincingly demonstrate its superiority over image-domain reconstruction methods, achieving high reconstruction qualityeven at a substantial acceleration rate of 10.
扩散模型已经成为图像生成的领先方法,并且在磁共振成像(MRI)重建领域取得了成功。然而,现有基于扩散模型的重建方法主要是在图像域中进行公式化,这使得重建质量容易受到线圈灵敏度图(CSM)不准确性的影响。k空间插值方法可以有效解决这个问题,但传统的扩散模型在k空间插值中并不容易应用。为了克服这一挑战,我们提出了一种新的方法,称为SPIRiT-Diffusion,这是一种受迭代自一致性SPIRiT方法启发的k空间插值扩散模型。具体来说,我们利用SPIRiT中自一致性项(即k空间物理先验)的迭代求解器,公式化了一个新的随机微分方程(SDE)来控制扩散过程。随后,可以通过执行扩散过程对k空间数据进行插值。这个创新方法突出了优化模型在设计扩散模型中SDE的作用,使得扩散过程能够与优化模型中固有的物理规律紧密对齐——这一概念被称为模型驱动扩散。我们使用一个3D联合颅内和颈动脉血管壁成像数据集评估了所提出的SPIRiT-Diffusion方法。结果充分证明了该方法优于图像域重建方法,在大幅加速率(10倍)下仍能实现高质量重建。
Method
方法
can be expressed as follows:
y = Ax + n,where x := [x1, ..., x*m] is the image to be reconstructed andxi* is the ith channel image, y is the undersampled k-spacedata, n is the Gaussian noise, A is the encoding matrix withA** := MF, M is the undersampling operator and F denotesFourier transform.Reconstructing a multi-channel MR image is akin to interpolating missing data from undersampled k-space data y.Achieving precise interpolation inevitably requires the utilization of prior information from the k-space data. In this context,SPIRiT serves as a model that exploits the self-consistencyprior in k-space. The self-consistency prior embodies a statistical regularity in k-space, where any point can be linearlyinterpolated based on its local points, including itself. Inother words, a self-interpolation kernel G exists, enabling themulti-channel k-space data ˆx to be interpolated as Gˆx = ˆx,where ˆx is the k-space data with ˆx = F(x). Therefore,the regularization model, utilizing the self-consistency priorto solve the inverse problem Eq. , can be formulated asfollows:
多通道 MR 重建的正向模型可以表示为:
y=Ax+n\mathbf{y} = \mathbf{A}\mathbf{x} + \mathbf{n}y=Ax+n
其中,x := [x₁, ..., xₘ] 是待重建的图像,xᵢ 是第 i 个通道图像,y 是欠采样的 k-空间数据,n 是高斯噪声,A 是编码矩阵,定义为 A := MF,M 是欠采样算子,F 表示傅里叶变换。重建多通道 MR 图像类似于从欠采样的 k-空间数据 y 中插值缺失的数据。要实现精确的插值,必然需要利用 k-空间数据的先验信息。在这种情况下,SPIRiT 作为一种模型,利用 k-空间中的自一致性先验。自一致性先验体现了 k-空间中的统计规律性,其中任何一点都可以基于其局部点线性插值,包括它自身。换句话说,存在一个自插值核 G,使得多通道 k-空间数据 ˆx 可以被插值为 Gˆx = ˆx,其中 ˆx 是通过 ˆx = F(x) 得到的 k-空间数据。因此,利用自一致性先验来求解逆问题 Eq. (5) 的正则化模型可以如下表示:minˆx∥Gˆx − ˆx∥ 2 2 + µ∥Ax − y∥ 2 2 ,
Conclusion
结论
In this paper, we have proposed a novel paradigm of modeldriven diffusion, where the diffusion equation is driven in accordance with the physics inherent in the optimization model.Specifically, we employed the SPIRiT model to drive a newdiffusion model, enabling the accurate interpolation of missingk-space data. In comparison to conventional diffusion modelsformulated in the image domain, our approach demonstratedrobust performance when confronted with challenges such asa limited FOV, phase singular points, and other factors that ledto inaccurate CSM estimation. Finally, experimental validationon a 3D joint intracranial and carotid vessel wall imagingdataset confirmed the superiority of the proposed method.
在本文中,我们提出了一种新颖的模型驱动扩散范式,其中扩散方程依据优化模型中固有的物理学进行驱动。具体来说,我们采用了SPIRiT模型来驱动新的扩散模型,从而实现对缺失k-空间数据的精确插值。与传统的基于图像域的扩散模型相比,我们的方法在面对有限视野(FOV)、相位奇点以及其他导致CSM(接收灵敏度映射)估计不准确的因素时,表现出了更强的鲁棒性。最后,在3D联合颅内和颈动脉血管壁成像数据集上的实验验证证明了所提方法的优越性。
Figure
图
Fig. 1: The SPIRiT-Diffusion framework. (a) Forward SDE: Self-consistent noise at different scales is gradually injected intothe multi-coil images. Reverse SDE: The self-consistent noise introduced by the Forward SDE is gradually removed fromthe noisy data. (b) Reverse SDE description: From time t to t − 1, first, transform x(t) to the k-space domain, execute oneiteration involving the self-consistency term, and then transform back to the image domain. Subsequently, incorporate the dataconsistency term, the learned probability density prior (i.e., score function), and noise to calculate x(t − 1). By iterativelyexecuting the reverse process, missing data in k-space is gradually updated. It is important to note that the image related toself-interpolation of k-space data is referenced from
图 1:SPIRiT-Diffusion 框架。(a) 正向 SDE:在不同尺度下,自一致性噪声逐渐注入到多线圈图像中。逆向 SDE:正向 SDE 引入的自一致性噪声逐渐从噪声数据中去除。(b) 逆向 SDE 描述:从时间 t 到 t − 1,首先将 x(t) 转换到 k-空间域,执行涉及自一致性项的一次迭代,然后转换回图像域。随后,结合数据一致性项、学习的概率密度先验(即得分函数)和噪声来计算 x(t − 1)。通过反复执行逆向过程,k-空间中缺失的数据逐渐得到更新。需要注意的是,涉及 k-空间数据自插值的图像参考。
Fig. 2: Training Flowchart: Generate x(t) by adding selfconsistent noise z to x(0) through a forward SDE, wherewt represents random noise at time t and S denotes coilsensitivity. Feed x(t) into the network sθwith z as the label,and use the network’s output in conjunction with z to computethe training loss Eq.
图 2:训练流程图:通过向 x(0) 添加自一致性噪声 z,通过正向 SDE 生成 x(t),其中 w(t) 表示在时间 t 的随机噪声,S 表示线圈灵敏度。将 x(t) 输入到网络 sθ 中,z 作为标签,并使用网络的输出与 z 一起计算训练损失(公式)。
Fig. 3: Reconstruction results of VWI data at absolutely R = 7.6 The top row shows the ground truth and the reconstructionsobtained using different methods. The second row shows an enlarged view of the ROI, and the third row displays the errormap of the reconstructions.
图 3:绝对值 R = 7.6 时 VWI 数据的重建结果。第一排展示了地面真值和使用不同方法得到的重建结果。第二排显示了感兴趣区域(ROI)的放大视图,第三排展示了重建结果的误差图。
Fig. 4: Reconstruction results of VWI data at R = 10. The top row shows the ground truth and the reconstructions obtainedusing different methods. The second row shows an enlarged view of the ROI, and the third row displays the error map of thereconstructions.
图 4:R = 10 时 VWI 数据的重建结果。第一排展示了地面真值和使用不同方法得到的重建结果。第二排显示了感兴趣区域(ROI)的放大视图,第三排展示了重建结果的误差图。
Fig. 5: Phase reconstruction results of VWI data at R = 7.6. The top row shows the ground truth and the reconstructionsobtained using different methods. The second row shows an enlarged view of the ROI, and the third row displays the errormap of the reconstructions.
图 5:R = 7.6 时 VWI 数据的相位重建结果。第一排展示了地面真值和使用不同方法得到的重建结果。第二排显示了感兴趣区域(ROI)的放大视图,第三排展示了重建结果的误差图。
Fig. 6: Phase reconstruction results of VWI data at R = 10. The top row shows the ground truth and the reconstructionsobtained using different methods. The second row shows an enlarged view of the ROI, and the third row displays the errormap of the reconstructions.
图 6:R = 10 时 VWI 数据的相位重建结果。第一排展示了地面真值和使用不同方法得到的重建结果。第二排显示了感兴趣区域(ROI)的放大视图,第三排展示了重建结果的误差图。
Fig. 7: Prospective reconstruction results of VWI data at R = 4.5, with images reformatted in the coronal direction. The toprow displays the ground truth alongside reconstructions obtained using various methods. The second row presents an enlargedview of the region of interest (ROI) marked by the yellow box in the first row. The SPIRiT image appears somewhat noisy.Aliasing artifacts are visible in the images from ISTA-Net and VE-SDE. The DL-SPIRiT result is missing parts of the vesselwall. SPIRiT-Diffusion demonstrates a strong capability to suppress artifacts and noise.
图 7:R = 4.5 时 VWI 数据的前瞻性重建结果,图像按冠状面重排。第一排展示了地面真值及使用各种方法得到的重建结果。第二排展示了第一排中黄色框标出的感兴趣区域(ROI)的放大视图。SPIRiT 图像出现了一定的噪声。ISTA-Net 和 VE-SDE 方法的图像中可见别名伪影。DL-SPIRiT 结果缺失了部分血管壁。SPIRiT-Diffusion 方法在抑制伪影和噪声方面表现出较强的能力。
Fig. 8: SPIRiT-Diffusion Reconstruction results at R = 7.6 with different CSMs. The term “ESPIRiT-SOS” indicates theused CSM methods in training (ESPIRiT) and testing (SOS), respectively. Other terms are the same. The ESPIRiT/SOS-labeldenotes the combination of full-sampled k-space using CSMs of the ESPIRiT/SOS method.
图 8:在 R = 7.6 时,使用不同 CSM 的 SPIRiT-Diffusion 重建结果。术语“ESPIRiT-SOS”表示在训练和测试中分别使用的 CSM 方法(ESPIRiT 和 SOS)。其他术语保持一致。ESPIRiT/SOS 标签表示使用 ESPIRiT/SOS 方法的 CSM 对完整采样的 k-空间进行组合。
Fig. 9: Reconstruction results of brain T2w data at R = 7.6. SPIRiT-Diffusion achieves the best reconstruction quality
图 9:R = 7.6 时脑部 T2加权(T2w)数据的重建结果。SPIRiT-Diffusion 方法实现了最佳的重建质量。
Fig. 10: Reconstruction results of fastMRI knee data at R = 7.6. SPIRiT-Diffusion achieves excellent reconstruction quality
图 10:R = 7.6 时 fastMRI 膝关节数据的重建结果。SPIRiT-Diffusion 方法实现了卓越的重建质量。
Table
表
TABLE I: The average quantitative metrics on test dataset Iat R = 7.6 and 10
表 I:在测试数据集 I 上,R = 7.6 和 10 时的平均定量指标
TABLE II: The average subjective scores of two radiologistsfor the prospective experiment.
表 II:两位放射科医生对前瞻性实验的平均主观评分
TABLE III: The average quantitative metrics of SPIRiTDiffusion using different CSM estimation methods on testdataset I at R = 7.6.
表 III:在测试数据集 I 上,R = 7.6 时使用不同 CSM 估计方法的 SPIRiT-Diffusion 平均定量指标
TABLE IV: The average quantitative metrics on the T1w kneedata and T2W brain data at R = 7.6.
表 IV:在 R = 7.6 时,T1加权膝关节数据和T2加权脑部数据的平均定量指标
相关文章:

SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型|文献速递-基于深度学习的病灶分割与数据超分辨率
Title 题目 SPIRiT-Diffusion: Self-Consistency Driven Diffusion Model for Accelerated MRI SPIRiT-Diffusion:基于自一致性驱动的加速MRI扩散模型 01 文献速递介绍 磁共振成像(MRI) 在临床和研究领域被广泛应用。然而,其…...

jwt封装教程
使用步骤: 1.导入jwt相关依赖 2.创建jwt工具类方便使用 3.通过工具类提供的方法进行生成jwt 4.通过工具类解析jwt令牌获取封装的数据 5.设定拦截器,每次执行请求的时候都需要验证token 6.注册拦截器 1.jwt依赖 <dependency><groupId>io.json…...

postman变量和脚本功能介绍
1、基本概念——global、collection、environment 在postman中,为了更好的管理各类变量、测试环境以及脚本等,创建了一些概念,包括:globals、collection、environment。其实在postman中,最上层还有一个Workspaces的概…...

【AI新领域应用】AlphaFold 2,原子级别精度的蛋白质3D结构预测,李沐论文精读(2021Nature封面,2024诺贝尔奖)
文章目录 AlphaFold 2 —— 原子级别精度的蛋白质3D结构预测背景(2024诺奖与AI学习资料)1、摘要、导论、写作技巧2、方案:模型,编码器,解码器3、实验:数据集,训练,结果 AlphaFold 2 …...

Figma汉化:提升设计效率,降低沟通成本
在UI设计领域,Figma因其强大的功能而广受欢迎,但全英文界面对于国内设计师来说是一个不小的挑战。幸运的是,通过Figma汉化插件,我们可以克服语言障碍。以下是两种获取和安装Figma汉化插件的方法,旨在帮助国内的UI设计师…...

前端知识点---this的用法 , this动态绑定(Javascript)
文章目录 this动态绑定 , this的用法01. 全局作用域下的 this02. 函数中的 this2.1 普通函数调用2.2 构造函数调用2.3 箭头函数中的 this 03对象方法调用04. 事件处理中的 this05. 动态绑定的方式5.1 call 方法5.2 apply 方法5.3 bind 方法 06类中的 this07. 总结 this动态绑定…...

web——upload-labs——第五关——大小写绕过绕过
先上传一个 先尝试直接上传一个普通的一句话木马 不行 可以看到,.htaccess文件也被过滤了,我们来查看一下源码 第五关的源码没有把字符强制转换为小写的语句: $file_ext strtolower($file_ext); //转换为小写 直接通过Burpsuite抓包修改文…...

String类型
String类 在Java中,String 类是一个非常核心且常用的类,它用于表示文本值,即字符序列或者说字符串。 1.1 类的声明 public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence 解释:…...

Ubuntu24.04安装和配置Redis7.4
Ubuntu24.04安装和配置Redis7.4 #切换到root用户 sudo su -#更新源 apt update apt upgrade#安装 lsb-release、curl 和 gpg ,以便能够添加 Redis 仓库 apt install lsb-release curl gpg#导入 Redis 的 GPG 密钥 curl -fsSL https://packages.redis.io/gpg | gpg …...

权限相关知识
1.Linux权限的概念 在说Linux权限的概念之前我来问大家一个问题,你们觉得什么是权限? 权限平时的体现呢,就比如不是校长的亲戚就不能逛办公室,没充会员的爱奇艺看不了VIP影视剧,没成会员的的蛋糕店拿不到会员价等等等…...

【时间之外】IT人求职和创业应知【37】-AIGC私有化
目录 新闻一:2024智媒体50人成都会议暨每经20周年财经媒体峰会召开 新闻二:全球机器学习技术大会在北京召开 新闻三:区块链技术在金融领域的应用取得新突破 不知不觉的坚持了1个月,按照心理学概念,还要坚持2个月&am…...

深入理解 source 和 sh、bash 的区别
1 引言 在日常使用 Linux 的过程中,脚本的执行是不可避免的需求之一,而 source、sh、bash 等命令则是执行脚本的常用方式。尽管这些命令都能运行脚本,但它们之间的执行方式和效果却有着显著的区别。这些区别可能会影响到脚本的环境变量、工作…...

k8clone二进制工具迁移k8s中的无状态应用
1 概述 k8clone是一个简便的Kubernetes元数据克隆工具,它可以将Kubernetes元数据(对象)保存为本地压缩包,在恢复时可将这些元数据恢复到目标集群中(已存在的资源不会被覆盖)。它不依赖远程存储,…...

VPI photonics的一些使用经验(测相位 快速搜索)持续更新
1.使用FuncSinEl模块的注意事项: 2.在VPI player(示波器)测电信号相位时候,可以使用正则表达式,快速搜索。 比如我要搜索以30开头的数据,输入: ^30 其他的正则表达式不适用,比如以…...

DBeaver 连接 OceanBase Oracle 租户
DBeaver 是一款通用的数据库工具软件,支持任何具有JDBC驱动程序的数据库。DBeaver 需要 Java 运行环境的支持。截稿时 DBeaver 24.0.0 版本默认提供的 OceanBase 驱动是连接 MySQL 的,想连接 Oracle 租户需要新建一个驱动器使用。 下载数据库驱动包 1、…...

QT_CONFIG宏使用
时常在Qt代码中看到QT_CONFIG宏,之前以为和#define、DEFINES 差不多,看了定义才发现不是那么回事,定义如下: 看注释就知道了QT_CONFIG宏,其实是:实现了一个在编译时期安全检查,检查指定的Qt特性…...

力扣(leetcode)题目总结——辅助栈篇
leetcode 经典题分类 链表数组字符串哈希表二分法双指针滑动窗口递归/回溯动态规划二叉树辅助栈 本系列专栏:点击进入 leetcode题目分类 关注走一波 前言:本系列文章初衷是为了按类别整理出力扣(leetcode)最经典题目,…...

如何处理 iOS 客户端内 Webview H5 中后台播放的音视频问题
目录 问题描述Page Visibility API 的应用什么是 Page Visibility API?使用 Page Visibility API 暂停音视频完整解决方案1. 监听媒体的播放和暂停事件2. 防止自动播放3. 结合 Intersection Observer 进行媒体控制4. 手动处理应用生命周期中的事件 问题描述 在 iOS…...

C++的一些模版
1、不限制次数的输入数据 vector<int> nums;int num;while (cin >> num) {nums.push_back(num);if (cin.get() \n) break;}2、取模模版 template<int kcz> struct ModInt { #define T (*this)int x;ModInt() : x(0) {}ModInt(int y) : x(y > 0 ? y : y…...

spring boot整合https协议
整体目录 1. 生成SSL证书 首先,使用keytool生成一个自签名证书。打开命令行工具并运行以下命令: keytool -genkeypair -alias myserver -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365 这将创建一个名为keystore.jks的文件…...

服务器开机即占用大量内存,解决
1.服务器开机两分钟不到,内存使用飙升 [rootlocalhost ~]# top #查看是否有了明显的内存占用程序 2.上述未果,查看是否有违规的开机自启项 [rootlocalhost ~]# chkconfig --list 3.上述无果,查看开启启动加载项内容 上网搜后ÿ…...

Keil uvision的edition
0 Preface/Foreword 0.1 参考网址 https://zhuanlan.zhihu.com/p/456069876 1 Keil版本介绍 版本介绍: Keil Lite(免费版):最多32KB代码,无法使用中间件Keil Essential(基础版):没…...

[每周一更]-(第123期):模拟面试|消息队列面试思路解析
文章目录 22|消息队列:消息队列可以用来解决什么问题?1. 你用过消息队列吗?主要用来解决什么问题?异步、削峰和解耦你能各举一个例子吗?2. 你用的是哪个消息队列?为什么使用它而不用别的消息队列?3. 为什么你一定要用消息队列?不用行不行?不用有什么缺点?4. 在对接多…...

游戏引擎学习第12天
视频参考:https://www.bilibili.com/video/BV1yom9YnEWY 这节没讲什么东西,主要是改了一下音频的代码 后面有介绍一些alloc 和malloc,VirtualAlloc 的东西 _alloca 函数(或 alloca)分配的是栈内存,它的特点是: 生命周…...

深入理解Flutter生命周期函数之StatefulWidget(一)
目录 前言 1.为什么需要生命周期函数 2.开发过程中常用的生命周期函数 1.initState() 2.didChangeDependencies() 3.build() 4.didUpdateWidget() 5.setState() 6.deactivate() 7.dispose() 3.Flutter生命周期总结 1.调用顺序 2.函数调用时机以及主要作用 4.生…...

413: Quick Sort
解法: #include <bits/stdc.h> using namespace std; const int N1e55; int a[N]; int n;int main(int argc, char** argv) {cin>>n;for (int i0;i<n;i) cin>>a[i];sort(a,an);for (int i0;i<n;i) cout<<a[i]<<" "…...

vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
import axiosNew from axios;//给axios起个别名//创建常量实例 const instanceNew axiosNew.create({//axios中请求配置有baseURL选项,表示请求URL的公共部分,url baseUrl requestUrlbaseURL: baseURL,//设置超时时间为20秒timeout: 20000,headers: {…...

Pandas数据透视表:交叉分析与聚合计算
大家好,在数据分析中,数据透视表(Pivot Table)是一种强大的工具,用于交叉分析和聚合计算。Pandas库中的数据透视表功能,使我们能够在多维数据中快速生成汇总表、统计特定维度的聚合数据,帮助揭示…...

软件设计师考试大纲
文章目录 一 、考 试 说 明1. 考试目标2. 考试要求3. 考试科目设置 二、考 试 范 围考试科目1:计算机与软件工程知识1. 计算机系统基础知识1.1计算机内数据的表示及运算1.2 其他数学基础知识1.3 计算机硬件基础知识1.3.1 计算机系统的组成、体系结构分类及特性1.3.2 存储系统1.…...

一文说清C++类型转换操作符(cast operator)
一 前言 大家在编程时,一定会遇到要做类型转换的应用场景。 但是,C风格的类型转换太强大,太危险,它允许将一个给定类型转换成我们想要的任何其他类型。 所以在C中,提供了一些更安全和更明确的类型转换操作符ÿ…...