Deep blind super-resolution for hyperspectral images_译文

关键词: 高光谱图像 盲超分辨率 退化模型 深度学习

摘要

        目前单张高光谱图像超分辨率的深度学习方法都是非盲方法,采用简单的双三次退化模型。这些模型泛化性能较差,无法处理未知的退化。此外,RGB图像的盲超分辨率方法忽略了高光谱图像中丰富的光谱信息,导致结果光谱失真。为了解决这些问题,我们考虑退化估计并提出一种单高光谱图像盲超分辨率算法。具体来说,我们首先使用模糊核估计网络和去模糊网络来获得没有模糊的图像。我们在估计核时通过交换空间通道信息来改变感受野,从而获得不同尺度的模糊信息。此外,为了减少核不匹配引入的误差以及组卷积忽略的波段间的相关信息,我们融合模糊图像的空间信息来补偿误差,然后利用其他波段的空间和光谱信息来引导当前频段的特征提取。最后,我们将来自不同分支的特征信息集成到全局融合网络中,以进一步提高空间和光谱信息保真度。对合成和真实世界高光谱数据集的大量实验明确表明,我们的方法在定量和定性评估方面均优于其他最先进的方法。我们的代码可在 https://github.com/YoungP2001/DBSR 上公开获取。

1.简介

        高光谱成像是一种将成像和光谱技术相结合,通过使用光学传感器检测目标反射的电磁波来获取空间和光谱数据的技术。其丰富的光谱信息可以反映材料的内在特性,有助于实现更准确的识别和分类任务。因此,高光谱成像已发展成为跨各个领域的重要监测工具。如军事侦察[1]、工业检查[2]、医疗诊断[3]等。然而,由于硬件传感器的限制,不可避免地要牺牲空间分辨率来增加入射能量,以保证在数百个窄带内有足够的成像信噪比。因此,低空间分辨率的高光谱图像(HSI)极大地限制了其进一步的应用。考虑到升级硬件设备带来的挑战和成本,高光谱图像超分辨率(SR)技术是解决这一问题的更经济的方法。

        HSI SR旨在从低空间分辨率(LR) HSI恢复相应的高空间分辨率(HR) HSI,同时保证原始图像的光谱信息不失真。目前,实现HSI SR的方法大致有两种:(1)基于融合的方法,将HSI与相关辅助图像融合,例如全色(PAN)图像[4]、多光谱图像(MSI)[5]和RGB图像[6] ]; (2)单高光谱图像超分辨率(SHSR)方法,不需要任何其他辅助图像。然而,基于融合的方法需要记录同一场景的配对图像,这使得此类数据集难以获取。此外,图像的不匹配可能会导致更糟糕的结果[7]。相比之下,SHSR 不需要任何其他先验信息或辅助输入,使其在实际应用中更加实用。因此,本文重点研究SHSR技术。

        由于缺乏重要的先验信息,单图像超分辨率是一个不适定问题[8]。因此,在没有任何关于 LR 图像的附加先验信息的情况下,单个 LR 图像可能对应于许多 HR 图像 [9]。此外,高光谱图像容易受到各种退化因素的影响,包括大气影响和运动模糊。这些因素会给数据带来失真和噪声,使得 SR 重建更具挑战性。 如果使用与实际退化过程不匹配的退化假设来处理现实世界中发生的复杂图像退化,则可能导致错误的结果并破坏其实际有效性。目前,现有的超分辨率算法都侧重于提高重构HSI的光谱精度和空间-光谱一致性。这些构建SR模型的算法仅仅基于简单的退化假设,例如单次下采样(例如,双三次下采样):

其中 Ix 和 Iy 表示 HR HSI 和 LR HSI,↓bic s 是具有放大因子 s 的双三次下采样。这些使用特定类型退化的 SR 模型在实际应用中具有很大的局限性。同样的问题也存在于 SR 自然图像中。为了解决这个问题,盲超分辨率(盲SR)受到了极大的关注,以有效处理未知的退化。

        因此,为了处理真实世界的图像,盲 SR 任务会模拟更一般的退化过程:

因此,为了处理真实世界的图像,盲SR任务模拟更一般的退化过程:其中Iy*k表示HR图像和非固定核k之间的卷积运算,n表示加性噪声。与等式相比(1),模糊核在等式中被考虑。 (2)。研究表明,核估计的准确性在图像退化中起着关键作用,不匹配的核估计会显着降低最终结果[10]。因此,方程中的退化模型。 (2)更接近真实的退化过程,有利于SR重建[11]。

        根据前面的讨论,显然盲目 SR 具有重要意义。然而,SHSR中几乎没有相关的盲SR工作,并且在先前的工作中仅考虑双三次退化模型。假设的双三次下采样与实际降采样之间的不匹配可能会导致性能显着下降。这就是为什么这些非盲SR模型泛化性能较差,我们希望设计一个盲SR模型来处理各种未知的退化。此外,另一个挑战是HSI SR需要考虑高光谱图像的第三维,因为该维包含丰富的光谱信息。相比之下,RGB图像仅由三个通道组成,针对RGB图像设计的盲超分辨率模型往往只关注空间信息,而忽略通道之间的信息。因此,将这些基于 RGB 的模型应用于高光谱图像可能会损害重建结果的光谱连续性和空间光谱一致性[12]。因此,我们需要创建一个 HSI SR 模型,可以整合光谱和空间信息来重建相干图像。

        为了有效解决上述挑战,我们设计了一种针对单张高光谱图像的盲超分辨率方法,称为DBSR。根据等式的退化。 (2)、我们决定先得到没有模糊的干净图像,然后在干净图像的基础上实现SR。如图1所示,网络框架包括四个模块:复用卷积深度线性核(MCDLK)、深度维纳反卷积网络(DWDN)、多路径集成注意力网络(MPIAN)和空间谱融合网络(SSFN)。受到自然图像盲SR[13,14]的启发,我们设计了通过提取不同尺度的特征来估计模糊核的MCDLK,以及利用维纳滤波器在深层特征空间中对LR HSI进行去模糊的DWDN。这两个模块可以通过学习退化过程的形成来处理未知的退化,不像以前的非盲SR只能处理训练数据集中存在的退化类型。然后,我们设计了 MPIAN 和 SSFN 来提取更准确的空间光谱信息。以前的基于组的卷积方法[15]将每个组的特征提取分开,忽略了组之间的相关性,难以充分利用光谱信息。 MPIAN融合前一组的特征来指导当前组的特征提取,从而充分利用HSI不同波段之间的相关性。此外,它还融合了原始模糊图像,以减少核估计过程中引入的误差。最后,SSFN由多个空间频谱融合单元(SSFU)组成,整合不同频段提取的信息,进一步从全局角度提取空间频谱信息。后两个模块解决了目前RGB图像的盲SR模型无法有效处理高光谱图像的问题,并充分利用HSI的信息进行恢复。此外,我们的网络与各种先进方法进行了比较。大量实验表明,我们的方法在 HSI 盲超分辨率方面表现出优越的性能,并具有更好的泛化能力。总而言之,我们的贡献如下:

        (1)首次提出了一种专门针对单张高光谱图像设计的新型盲SR算法,有效解决了HSI的未知退化问题。

        (2)我们设计了MPIAN和SSFN模块来深入利用不同波段之间的空间和光谱信息,从而弥补了RGB图像的盲SR方法不适合高光谱图像的差距。

         (3)实验结果验证了我们的方法与其他SOTA方法相比在视觉质量和定量指标方面的优越性能。

        本文其余部分的结构如下:第 2 部分介绍了相关工作的回顾,特别关注自然图像的 HSI SR 和盲 SR。在第 3 节中,我们详细描述了 DBSR 方法。这些实验在第 4 节中讨论。最后,我们在第 5 节中总结我们的工作。

2. 相关工作

        目前,自然图像的盲 SR 算法是一个广泛研究和高度重视的领域,但针对单个图像的盲 SR 的研究很少。恒指。在本节中,我们主要回顾自然图像的 SHSR 和盲 SR 方法的发展。  

2.1.单幅高光谱图像超分辨率

        现有的传统方法采用插值技术来实现超分辨率,例如最近邻插值和双三次插值。这些方法很简单,但可能会导致图像失真,例如锯齿状边缘和伪影。后来,贝叶斯分析[16]、小波变换和稀疏表示[17]被引入。然而,这些方法既复杂又耗时。此外,如果没有外部信息,他们就无法恢复复杂的细节。因此,基于深度学习的SHSR以其卓越的表征能力在过去几年中受到越来越多的关注。

        最近,袁等人。 [18]提出了一种迁移学习网络,利用自然图像 SR 中的知识来处理 HSI,并研究了 CNMF 的光谱映射。然而,与自然图像不同,HSI具有多个波段,并且其数据具有三维特征,使得它们非常适合使用3D卷积来提取特征。梅等人。 [19]采用3D CNN(3DFCNN)来探索高光谱图像的三维信息。同样,李等人。 [20]开发了一个 3D GAN 框架来提高 HSI 的光谱保真度。然而,3D 卷积通常具有更多的内存要求和成本。为了减少计算负担,Li 等人。 [21]创建了一个包含 2D 和 3D 卷积的混合卷积模块(MCNet),它在较低的计算要求下表现出显着的性能改进。因此,后续的一些方法侧重于有效结合 2D 和 3D 卷积。然而,包含3D卷积的算法通常计算成本较高,因此一些研究人员使用2D卷积逐波段进行SR。例如,江等人。 [15]采用了利用空间光谱先验的分组卷积网络,重点关注 HSI 中光谱信息的重建。这些方法证明了分组策略有效地降低了模型的计算复杂度。然而,上述使用分组卷积的方法忽略了波段之间的相关性。随后,王等人。 [22]设计了一种具有反投影策略(aeDPCN)的自动编码器,可以学习丰度域中 LR 和 HR 丰度矩阵之间的映射。然而,这些深度学习模型大多数仍然使用双三次插值对 HR HSI 进行下采样以获得相应的 LR HSI 作为数据集,使得其模型在实际应用中效果不佳。因此,邓等人。 [23]拼接具有不同退化的多个图像作为训练输入来恢复HR HSI。然而,通过有限的组合来模拟真实的退化并不能有效地实现HSI的盲超分辨率,因此几乎没有针对单帧HSI的盲超分辨率的研究。

 2.2.单自然图像盲超分辨率

        目前,自然图像中SR的研究逐渐成熟。然而,研究人员发现非盲 SR 模型不适用于现实世界的 LR 图像。因此,出现了许多盲目SR方法。

        一些方法通过数据分布隐式定义退化过程,称为隐式建模[24]。通常,他们使用生成对抗网络(GAN)[25]来学习隐式退化模型。然而,他们只能了解数据集中是否存在退化,因此很难了解数据集之外的退化类型。其他方法使用方程式明确地模拟退化过程。 (2)、称为显式建模。例如,Shocher 等人。 [26]通过在没有外部数据集的情况下对单个图像的内部递归属性进行建模来设计 ZSSR。然而,并非所有图像都具有规则的内部属性。因此,一些方法利用外部数据集来学习不同的退化类型,通常包括核估计和基于估计核的超分辨率。例如,顾等人。 [27]使用迭代策略来修正估计的内核以提高SR性能。黄等人。 [28]开发了一种深度交替网络(DAN),它交替迭代地优化核估计网络和SR网络。虽然这些方法在自然图像中具有更好的性能,但它们可能会破坏高光谱图像的光谱信息。还有一些研究侧重于核估计。贝尔·克利格勒等人。 [13]使用GAN设计KernelGAN进行核估计,Tao等人。 [29]在频域中重建了模糊核,并证明它比在空间域中更准确。这些方法仅在恒定感受野下获得模糊信息,但不同感受野下模糊可能不同。此外,它们是为自然图像设计的,不适合包含大量冗余信息的高光谱图像。

        综上所述,现有的非盲 SHSR 方法无法处理未知的退化,并且直接应用在 RGB 图像上表现优异的方法来处理 HSI 会由于忽略光谱特性而导致重建质量较差。为此,我们提出了一种新颖的高光谱图像盲超分辨率来重建现实世界中的 HR 图像。

 3.提出的方法

        在本节中,我们将全面描述我们提出的针对单张高光谱图像的盲超分辨率方法DBSR。整体架构如图1所示,包括四个关键模块:MCDLK、DWDN、MPIAN和SSFN。我们首先解释基于退化模型的网络架构,然后介绍上述每个模块。  

3.1.网络架构

        如式(1)所示。 (2)、图像在下采样之前通常会经历模糊处理。由于我们只有 LR 图像,大多数方法选择通过显式建模直接在 LR 图像空间中估计未知 HR 图像的模糊核。显然,直接从LR信息获得准确的模糊核是极其困难的。此外,即使获得了HR空间中的估计模糊核,将该核与LR图像信息结合起来也是具有挑战性的。目前,许多方法使用维数拉伸策略[30],但这种方法会破坏内核的内部信息。

        因此,如果估计核对应的模糊图像在同一个LR空间中,上述问题就可以很容易解决,将退化问题转化为去模糊问题。与[31]一样,我们将新的退化模型描述为:

        在我们方法的前两个模块中,我们的目标是在 LR 空间中提取干净的特征而不模糊。首先,我们使用MCDLK 模块获取估计的内核,可以表示为:

        由于获得的去模糊特征是粗糙的,因此有必要探索冗余信息以减少错误并恢复更准确的细节。我们应用 MPIAN 模块来连接原始模糊特征和其他频带中的信息,以提取更多潜在特征 ̂F i LR。在融合每个分支网络的特征之前,我们还将结果 ̂F i LR 与 Ii LR 的残差相加,以关注当前模块中的高频信息。上述步骤可以表述为:

其中 HMP IAN 表示 MPIAN 模块。最后,我们使用SSFN模块对所有重建结果进行分组整合,以增强HSI的全局一致性,然后我们应用像素洗牌作为上采样模块。上述步骤可以表述为:

其中HUP和HSSF N分别表示上采样模块和SSFN模块。

3.2.多路复用卷积深度线性核(MCDLK)

        在现实场景中,模糊的种类复杂多样。因此,必须通过正确估计模糊核来指导后续的去模糊过程。如果估计的模糊核不准确,去模糊算法可能会尝试增强图像中的错误特征或细节,从而导致不期望的结果。不正确的估计可能会导致最终图像出现伪影、模糊或失真。

        因此,我们设计了一个MCDLK模块来估计正确的模糊内核。由于该任务中损失函数的非凸性,很难找到全局最优解。一些工作 [13] 表明,使用深度线性网络估计内核可以更轻松地获得最佳解决方案。因此,我们提出MCDLK模块来近似真实的模糊内核,如图2所示。

        MCDLK模块主要应用MCNet从输入LR HSI中提取模糊特征。在MCNet中,我们采用1个卷积层和3个复用卷积块(MConv Block)来提取特征。由于 HSI 的高维性和光谱相关性,我们首先对从浅层提取的特征进行分组,然后提取多个尺度的空间和通道信息,这受到 MUXConv [32] 的启发。具体来说,经过浅层提取后,模糊图像在MConv层中被分为三组(C1=C、C2=2C、C3=C)。第一组和第三组分别进行子像素和超像素操作。对于亚像素操作,它将空间信息按照一定的排列规则映射到通道信息,在不改变卷积核的情况下增大感受野。它可以提取更多的全局信息,帮助探索整体模糊特征。与其他通过下采样增加感受野的方法不同,该方法仍然保留了原始的空间信息。超像素与子像素相反,将通道信息映射到特定的空间位置。当感受野变小时,有助于聚焦输入图像的更多局部区域并提取更详细的信息。总体而言,子像素和超像素操作使空间和通道信息能够相互交互。然而,这些操作减少了通道之间的信息交换,因此我们还在两个 MConv 层之间添加了 1 × 1 卷积层,以增强对通道信息的探索。

        虽然已经从LR HSI中提取了模糊信息,但卷积运算无法生成内核。因此,我们通过池化层和全连接层将特征图转换为模糊核。同时,由于单层内核的不稳定性[13],我们通过多个单层线性内核来近似真实的模糊内核,增加了达到最优值的可能性。因此,通过一系列未激活的线性卷积层生成多个单层内核,并通过将它们与恒等内核进行卷积来生成估计的模糊内核。

        根据先验知识,估计的内核之和̂kl也被限制为1。通过精心设计的MCDLK,我们可以准确地估计模糊核,为后续处理提供必要的信息,确保增强正确的特征在重建结果中。

3.3.深度维纳反卷积网络(DWDN)

         在上一部分中,我们介绍了本文提出的核估计网络。一旦获得估计的模糊核,需要通过反卷积将其应用于退化模型以获得模糊前的图像。这个过程本质上是图像的去模糊问题。逆滤波等传统算法常用于去模糊问题,但其性能较差。之前的工作[33]证明了深层特征空间中的维纳反卷积优于标准图像空间中的维纳反卷积,因此本文利用基于特征的维纳滤波进行图像去模糊。

        如图3所示,我们首先使用一组特征提取线性层{Gj}L j=1从输入中提取特征。结果,等式。 (3)在深度特征空间中可以重写为:

其中 sf j 和 sn j 分别表示干净 LR 特征的功率谱和噪声的功率谱,sn j 近似为模糊特征 Gj ILR 与其均值滤波结果之间的差的平方。  表示离散傅里叶变换, (̂kl) 是  (̂kl) 的复共轭。最后,干净的特征可以通过等式计算出来。 (9)和(11)。论文 [33] 详细介绍了维纳反卷积的更多分析。

3.4.多路径集成注意网络(MPIAN)

         由于当估计的核不完全等于真实核时,核估计中总是会引入误差,因此我们需要最小化核误差的影响。我们还需要探索相邻波段之间的光谱信息,以更好地重建高光谱图像。

        因此,在通过 DWDN 模块初步提取干净的图像特征后,我们在每个分支网络的末端设计了 MPIAN 模块,以细化反卷积的潜在特征 f̂ i LR。如图4所示,MPIAN主要包含一组多路径集成注意块(MPIAB),其具有三个输入,包括f̂i LR、原始模糊特征Gj Ii LR和最后一组MPIAB的输出。该模块的流程可以表述为:

        虽然通过反褶积提取了干净的特征,但在核估计过程中总会引入一些误差。因此,我们需要从原始模糊特征中发掘尽可能多的有用信息,以补偿误差,减少伪影。为此,我们开发了一个具有两个残差块的特征提取模块,并在每个MPIAB中连接模糊特征和干净特征。然后,前一组的特征也与本地组相结合,以增强相邻频段之间的相关性。这种集成发生在每个 MPIAB 而不是最后一个,这可以增强网络对不同深度特征空间的光谱维度的重视。最后还有一个通道注意力层。在融合其他信息后,应用通道注意力自适应地重新调整通道的权重对于提高局部范围内的频谱连续性具有重要意义,并且还可以通过参数共享来增强不同频带之间的相关性。此外,所有 MPIAB 的每条路径都添加了剩余连接。短跳跃连接携带丰富的低频信息,使主网络集中学习高频信息并恢复更准确的细节。

3.5.空间光谱融合网络(SSFN)

         以上模块都是分组进行的。为了充分利用高光谱数据,最后设计了空间光谱融合网络(SSFN),对分支提取的深度特征进行融合,在全局水平上融合空间光谱信息,增强重构HSI的全局空间光谱一致性。多个空间光谱融合单元(SSFU)级联在SSFN中。如图5所示,每个SSFU包括一个伪3d卷积(Pseudo3D)块[34]、一个残差模块(ResNet)和一个残差通道注意模块(RCAB)[35]。

        为了在不破坏空间光谱一致性的情况下提取 3D 高光谱特征,并且不给计算资源增加额外的压力,我们使用伪 3D 卷积。如图6所示,每个伪3D卷积块通过串联或并联连接组合了1×3×3卷积层和3×1×1卷积层,取代了标准的3×3×3卷积层。此外,我们还比较了不同 Pseudo-3D 组合在 CAVE 数据集上缩放因子 ×4(将图像放大 4 倍)的性能,并报告了三个性能指标。根据表 1 中的结果,很明显串联连接可以为整个网络带来更好的性能。因此,我们决定采用级联的伪3D模块。通过伪3D的初步提取,我们进一步通过两个残差模块提取空间和光谱信息。 ResNet允许低频信息直接传递到末端,使得网络更专注于高频信息,训练更加稳定。那么,由于高光谱数据有很多通道,对所有通道应用相同的权重是不合理的。为了调整不同通道的权重,引入了融合残差网络和通道注意机制的RCAB模块。卷积层采用1 x 1核对谱带进行线性重建,然后通过通道注意力自适应调整残差分量中的特征权重,从而进一步增强网络的表示能力。

        此外,我们应用三个评估指标来评估表1中的模型,包括峰值信噪比(PSNR)、结构相似度(SSIM)和光谱角度映射器(SAM)。这些指标详见 4.2.2。

3.6.损失函数

        目前,l1、l2和感知损失是图像超分辨率中最流行的损失函数。然而,感知损失函数可能会在输出图像中生成虚假细节,而 l2 损失函数往往会产生更平滑的图像。因此,本文采用l1损失来优化网络。具体来说,l1 损失计算 SR 结果与相应的真实 HR 图像之间的平均绝对误差。它的定义是:

其中 n 代表第 n 个图像,N 是批量大小。 θp表示SR网络的参数集。由于本文设计了核估计网络,因此还需要损失函数来优化估计核。它的定义是:

其中 θk 表示核估计网络的参数集。

        一般来说,盲SR方法联合优化SR网络和核估计网络如下:

        然而,上述损失函数主要是针对自然图像设计的,它们独立地考虑每个波段的重建误差。在关注 SR 结果中的空间信息时,他们经常忽略光谱一致性,特别是在 HSI 应用中。 SAM 是一种广泛使用的 HSI 指标,它通过计算估计光谱向量和参考光谱向量之间的角度来量化光谱相似性。 SAM 定义为:

其中 Np 表示每个波段中的像素数,数值等于 H × W 。 n, i 表示第 n 个图像的第 i 个谱向量。可以看出,s(θp) 将每个谱向量视为一个整体,并计算两个 HSI 之间的谱维误差。因此,SAM 损失可以提高重建 HSI 数据的光谱质量和准确性。

        综上所述,本文对SR网络和核估计网络与总损失函数进行联合优化:

其中 λ 表示 SAM 损失的权重。通过实验,我们确定将 λ 值设置为 0.1 可以获得最佳结果。

然后,我们比较了 ×4 的 CAVE 数据集上的 1 和 total (θ) 之间的性能,表 2 报告了定量比较结果。纳入 SAM 损失后,所有三个指标都表现出性能改进,其中 SAM 显示出特别值得注意的结果。

4 实验与结果

4.1数据集

4.1.1. CAVE

        数据集1是使用可调谐滤波器和冷却CCD相机在400 nm至700 nm波长范围内获取的,每个HSI有31个波段。该数据集包含 32 个场景,包括不同类别 [37]。在该数据集中,所有高光谱图像的尺寸为512×512×31。

4.1.2哈佛

数据集2是利用带有可调滤波器的高光谱相机采集的。所有图像均在 420 nm 至 720 nm 的波长范围内收集[38]。该数据集包含 77 张在室内和室外日光下拍摄的高光谱图像。所有图像的尺寸为 1040 × 1392 × 31,具有 31 个光谱带。

 4.1.3. CHIKUSEI

数据集3是由Headwall Hyperspec-VNIRC成像传感器捕获的,它是日本茨城县筑西市的一个城区。它在 363 nm 至 1018 nm 的光谱范围内有 128 个波段,由 2517 × 2335 像素组成 [39]。与以自然高光谱图像为特征的 CAVE 和 HARVARD 数据集不同,CHIKUSEI 数据集由遥感高光谱图像组成。

4.2.比较方法和评价指标

4.2.1.比较方法

        我们将我们的方法与四种表现出优越性能的深度学习方法进行比较,包括三种 HSI SR 方法:SSPSR [15]、MCNet [21] 和 DualSR [40],以及 RGB 域中的盲 SR 方法: DCLS [14]。双三次插值也用作基线。大多数方法都使用官方代码和默认参数设置,以确保客观评估和准确比较。值得注意的是,DCLS 是自然图像的盲 SR 方法,它实现了最先进的 (SOTA) 性能。在对比实验中,我们将输入通道从三个通道调整为HSI数据集中相应的波段数,以适应高光谱数据的光谱维度。此外,所有方法都经过相同的数据预处理,并在相同的训练和测试集上进行重新训练和测试。

 4.2.2.评估指标

        我们应用 PSNR、SSIM 和 SAM 来评估所有模型。 IHR 和 ISR 之间的 PSNR 定义为:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Visual studio code编写简单记事本exe笔记

安装扩展cmake tools c/c c/c Extension pack CMakeLists.txt cmake_minimum_required(VERSION 3.20) project(NotepadApp)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# Windows specific settings if(WIN32)set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)s…

Java100道面试题

1.JVM内存结构 1. 方法区(Method Area) 方法区是JVM内存结构的一部分,用于存放类的相关信息,包括: 类的结构(字段、方法、常量池等)。字段和方法的描述,如名称、类型、访问修饰符…

【数电尾灯设计】2022-8-16

缘由数电尾灯设计问题,求解答--CSDN问答 从题目可以列出 000 100 010 111-----------4进制 000 100 010 110 001 101 011 111-----------8进制 由列出可知用16进制芯片的3个引脚可以获得8进制推导出4进制从而可用逻辑处理为4进制实现尾灯功能。之上第一步实现了尾灯…

安卓14无法安装应用解决历程

客户手机基本情况: 安卓14,对应的 targetSdkVersion 34 前天遇到了安卓14适配问题,客户发来的截图是这样的 描述:无法安装我们公司的B应用。 型号:三星google美版 解决步骤: 1、寻找其他安卓14手机测试…

【WRF数据准备】ECMWF 49r1: Soil Variables的变化及WRF模型修正

目录 ECMWF 49r1: Change in soil variablesECMWF 49r1更新的背景土壤变量的主要变化对WRF使用者的影响Github中描述ERA5 Vtable 下载另:原始 IFS 数据-ECMWF 服务器参考2024年12月12日,ECMWF 发布了 49r1 版本的业务 IFS。ECMWF在其49r1循环版本中对土壤变量进行了重要更新。…

一机多实例:如何在一台机器上高效运行多个 MySQL 服务

前言 在实际开发和测试环境中,我们经常需要运行多个 MySQL 实例来模拟不同的数据库环境。例如,在一台服务器上运行多个数据库服务以节约硬件资源,或者同时运行不同版本的 MySQL 进行功能兼容性测试。MySQL 本身支持通过配置多实例运行&#…

源代码编译安装X11及相关库、vim,配置vim(1)

一、目录结构 如下。 所有X11及相关库装到mybuild,源代码下载到src下,解压,进入,编译安装。编译时指定--prefix到相同的目录,即上图中mybuild。 ./configure --prefixpwd/../../mybuild [CFLAGS"-I/path/to/X11…

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式),CSS样式表可以分为三大类: 1.行内样式表(行内式) 2.内部样式表(嵌入式) 3. 外部样式表(链接式) 5.2 内部样式表 …

【C++】构造函数与析构函数

写在前面 构造函数与析构函数都是属于类的默认成员函数! 默认成员函数是程序猿不显示声明定义,编译器会中生成。 构造函数和析构函数的知识需要建立在有初步类与对象的基础之上的,关于类与对象不才在前面笔记中有详细的介绍:点我…

WPF区域导航+导航参数使用+路由守卫+导航日志

背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism 主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件 下面是MainViewModel: private object body;public object Body {get { retu…

Unity中 Xlua使用整理(一)

1.安装: 从GitHub上下载Xlua源码 Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. (github.com) 下载Xlua压缩包,并解压将Aseet文件夹中的Xlua和Plugins文件夹复制到Unit…

Matlab仿真径向受压圆盘光弹图像

Matlab仿真径向受压圆盘光弹图像-十步相移法 主要参数 % 定义圆盘参数 R 15; % 圆盘半径,单位:mm h 5; % 圆盘厚度,单位:mm P 300; % 径向受压载荷大小,单位&#xff…

基于Django的学校智能图书馆借书归还订阅管理系统

完整源码项目包获取→点击文章末尾名片!

【设计模式-2】23 种设计模式的分类和功能

在软件工程领域,设计模式是解决常见设计问题的经典方案。1994 年,Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(四人帮,GoF)在《设计模式:可复用面向对象软件的基础》一书中系统性地总结了…

阿里云代理商热销产品推荐

在数字化浪潮的推动下,企业对于云计算的依赖日益加深。阿里云,作为中国领先的云计算服务提供商,为企业提供了丰富多样的云产品和服务。本文将聚焦于阿里云代理商热销产品推荐,探讨其如何帮助企业高效利用云资源,加速数…

[redux] 异步逻辑的两种写法

createAsyncThunk | Redux Toolkit 第一种, extraReducers 普通的reducers只能写同步代码 异步必须得用中间件的形式,就是异步代码调用完有结果了, 再调用同步的reducer, 大概这么理解, 第一种怎么用呢? 先用一个异步函数 const fetchUserById createAsyncThunk(users/fet…

在Java中使用有符号类型模拟无符号整数的技巧

有符号整数和无符号整数 有符号整数:可以表示正数、负数和零。例如,Java中的 byte 类型是有符号的,其范围是 -128 到 127.无符号整数:只能表示非负数(即零和正数)。例如,无符号 byte 应该表示的…

51单片机——8*8LED点阵

LED 点阵的行则为发光二极管的阳极,LED 点阵的列则为发光二极管的阴极 根据 LED 发光二极管导通原理,当阳极为高电平,阴极为低电平则点亮,否则熄灭。 因此通过单片机P0口可控制点阵列,74HC595可控制点阵行 11 脚 SR…

Flutter:邀请海报,Widget转图片,保存相册

记录下,把页面红色区域内的内容,转成图片后保存到相册的功能 依赖 # 生成二维码 qr_flutter: ^4.1.0 # 保存图片 image_gallery_saver_plus: ^3.0.5view import package:demo/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; i…

C++Primer const限定符

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…