Single Image Haze Removal Using Dark Channel Prior

单幅图像基于暗通道先验的去雾

Single Image Haze Removal Using Dark Channel Prior

Kaiming He, Jian Sun, and Xiaoou Tang, Fellow, IEEE

摘要:在本篇论文中,我们提出了一种简单但是有效的图像先验条件——暗通道先验去从一幅输入图像中去雾。暗通道先验是一种对于大量户外有雾图像的统计结果,它最重要的一个观察结果是户外无雾图像的绝大部分区域包含某些像素的亮度值至少在某一个通道上是非常低的。结合这个先验条件与雾天图像模型,我们可以直接估计雾的厚度并且回复一幅高质量的无雾图像。基于各种各样的有雾图像的实验去雾结果证明了所提出先验条件的有效性。并且,一幅高质量的图像深度图可作为图像去雾的附带产品。
索引词:去雾,去霾,图像复原,深度估计

一、 介绍
   户外场景图像通常会因为空气中的浑浊介质降质(比如,颗粒和小水滴),雾,霾,烟都是由于大气吸收或散射引起的现象。顺着视线的场景辐射在到照相机后已经减弱,并且,入射光混合了空气光
【1】—通过大气粒子反射到视线中的环境光。降质图像损失了对比度和图像保真度,如图 1a 所示。由于散射数量取决于摄像机镜头的距离,其退化是空间上的变化。
图像去雾在消费者/计算机图像处理和计算机视觉等应用中都具有很高的需求。首先,去雾之后可以显著的提高场景的可见度并纠正由于大气光引起的颜色偏移。通常情况下,无雾图像给人的视觉感官更好。其次,大多数计算机视觉算法,无论是低水准的图像分析或是高水平的物体识别,通常都假设输入图像(经过辐射矫正后)是场景的辐射。许多视觉算法(比如特征检测,滤波,光度分析)都会不可避免的因为场景辐射的偏移和低对比度而失效。最后,图像去雾可以提供深度信息并且对许多视觉算法和现金的图像编辑都是有益的。雾或者霾可以成为一个对场景理解有用的深度线索。一幅浓雾图像一样也可以被投入到使用中。
    然而,图像去雾是一个具有挑战性的问题因为雾通常都具有未知的深度。如果输入仅是单幅有雾图像的话这个问题是无法限定约束条件的。因此,有许多方法提出通过使用多幅图像或者通过额外信息来解决这个问题。基于偏振的方法通过从不同的偏振度拍摄两幅或更多的图像来去除雾的影响【3】,【4】。在【5】,【6】,【7】中,通过从同一个场景在不同的天气条件下的图像获得更多的约束条件。基于深度的方法中【8】,【9】需要一些深度信息从输入图像或一些已知的 3D 模型。
最近,单幅图像的去雾已经取得了显著的进步【10】,【11】。这些方法的成功点在于使用了强有力的先验条件或者假设。Tan【11】观察到一个无雾图像相比于输入的有雾图像必然会有更高的对比度所以他最大化了恢复图像的局部对比度。这个结果在视觉上是令人觉得信服的,但是在实际原理上不一定站得住脚。 Fattal【10】基于传输率和表面着色是局部无关的假设,估计了场景的反射率和介质传输率。这一方法在原理上听着可行在结果上也看着不错,但是它不可以很好的处理浓雾图像并且当假设不成立时很可能失败。
   在这篇文章中,我们提出了一个新奇的先验条件——暗通道先验——专为单幅图像的去雾。暗通道先验是基于户外无雾图像的一种统计结果。我们发现,除去天空区域外的大多数局部区域的有些像素(暗像素)总是在 RGB 通道中至少有一个通道有非常小的亮度值。在有雾图像中,这些暗像素的亮度值主要被大气光所贡献。因此,这些暗像素可以直接提供一个雾的传输率的精确估计。结合雾的成像模型和软抠图插值方法,我们可以恢复出一幅高质量的无雾图像和一幅好的景深图。

在这里插入图片描述

图 1 (a)输入有雾图像 (b)用我们的方法去雾后的图像 (c)我们恢复出的景深图

   我们的方法是物理可行的并且可以处理远距离的物体即使是浓雾情况下。我么并不依赖于显著变换的传输率或表面着色。处理结果会包含少量的光晕现象。
   和其它任一使用强假设的方法类似,我们的方法也有自己的限制性。在一个大的局部区域中当场景物体和大气光具有内在相似性(比如一个雪地或者白墙)并且没有阴影投影在上时,暗通道先验这个方法也许会失效。尽管我们的方法对于绝大多数户外有雾图像的去雾效果都不错,但也会在某些极端条件下失效。幸运的是,在这样的情况下去雾已经不是关键的事情了因为雾已经几乎不可见了。我们相信逐渐发展的从不同角度出发的新奇的先验条件的结合会使去雾更加进一步。

二、 背景
   在计算机视觉和计算机图形中,广泛应用来描述雾天图像成型的公式是【2】,【5】,【10】,【11】:
            I(x)=J(x)t(x)+A(1-t(x)); (1)
在公式中 I(x)是观察到的有雾图,J(x)是场景的无雾图,A 是全局大气光,t 是描述无法散射并
到达照相机的光的介质传输率。 达到去雾的目的是要从已知的 I 中解出未知的 J,A,t,这是一个未限定方程,是不可解的。
   在(1)中,等式右边 J(x)t(x)叫做直接衰减【11】,A(1-t(x))【1】,【11】叫做空气光(大气遮罩)。直接衰减描述了场景辐射和其在介质中的衰减,空气光来自于之前所提的散射的光并会导致场景颜色的偏移。直接衰减对场景辐射是一种乘性变形,空气光是一种加性变形。
当大气介质是均匀的时候,传输率 t 可以表示为:t(x)=e-βd(x) (2)
   β是大气散射系数,d 是景深。这个等式表明场景辐射是与景深成指数衰减的关系。如果我们可恶意恢复传输率,我们也可以恢复景深。
几何上来说,(1)说明了在 RGB 颜色空间中,向量 A,I(X)和 J(x)是共面的,他们的最后一点是
共线的(见图 2a) 传输率 t 是两个线性段的比值:

C 是 RGB 通道的索引。
在这里插入图片描述
图 2 (a)雾图成像模型 (b)Fattal 的恒定反射率模型【10】
在这里插入图片描述
   基于这个模型,Tan 的方法【11】专注于提高图像的可见度。对于一个通道内具有相同传输率 t,可
视性(梯度之和)被雾所减弱了因为 t<1:∑𝑥 ||∇𝐼(𝑥)|| = 𝑡 ∑𝑥 ||∇𝐽(𝑥)|| < ∑𝑥 |∇𝐽(𝑥)||(4)
在 J(x)的亮度不可能大于 A 的亮度的约束条件下,通过最大化通道的可视度来估计一个局部通道的传输率 t。一个 MRF 模型是用来修正结果的,这个方法可以很好的揭示雾图的细节和结构。然而, 输出图像通常会具有更高的饱和度值因为这个方法仅仅注意提升可视度但是并没有物理上的还原场景辐射。而且,结果可能会在景深不连续处产生光晕效果。
   Fattal【10】提出了一种基于独立部分分析(ICA)的方法。首先,局部区域的反射率被假设为一个恒定的向量 R,如图 2b 所示。 第二,通过假设表面着色||J(x)||和传输率 t(x)在局部区域是相独立的,R 的方向可以用 ICA 估计。最后,利用输入颜色图像引导的 MRF 模型,对整个图像进行推断。这种方法是基于物理的,并且可以生成一个自然的无雾图像和一个好的深度映射。但是,由于统计独立的假设,这种方法要求独立的部分有很大的差异。任何缺乏变化或低信噪比(通常在稠密的霾区)都会产生统计数据不可靠。此外,由于统计数据是基于颜色信息的,所以对于灰度图像来说,它是无效的并且难以处理无色的浓密烟雾。
   在下一节中,我们将介绍一个新的先验条件—暗通道先验—从一个室外的朦胧图像直接估算出它的传输率。

三、 暗通道先验
   暗通道先验是基于以下户外无雾图像的观察:在大多数非天空区域,至少有一些像素的最少一个通道有非常低接近于 0 的亮度值。
   正式的描述这个观察结果,我们首先定义了关于暗通道的概念。,对于任意一幅图像 J,它的暗通道Jdark 可表示为: Jdark(x)=𝑚𝑖𝑛𝑦∈𝛺(𝑥) (𝑚𝑖𝑛𝑐∈{𝑟,𝑔,𝑏}𝐽𝑐(𝑦)), (5)
Jc 表示 J 的一个颜色通道,Ω(x)是一个在 x 处的局部区域。一个暗通道是两个最小符的取值结果:
𝑚𝑖𝑛𝑐∈{𝑟,𝑔,𝑏}表现如图 3b,𝑚𝑖𝑛𝑦∈𝛺(𝑥)表示一个最小值滤波(图 3c),两个最小符可以互相交换顺序。使用暗通道的概念,我们的观察发现如果 J 是一个户外无雾图像,除了天空区域,J 的暗通道亮度
是非常低的并且趋近于 0:Jdark->0. (6) 我们称此为暗通道先验。
   暗通道的低亮度主要是因为如下三个因素:1.阴影,比如果,汽车,建筑的阴影,城市景观的内部, 或是树,岩石,输液的投影。2 彩色物体表面 比如一个物体在某个颜色通道具有非常低的反射性(绿色的草、植被,红黄的花,蓝色的水面)将会导致暗通道 3.暗的物体或表面,比如黑的树干和石头。因为自然的户外图像通常都五颜六色并且有很多阴影,在这些图片中暗通道的值很低!
   为了验证暗通道先验的优越性,我们从 Flickr.com 和其它搜索引擎上收集了很多图像做实验。由于户外和城市区域是雾的多发地带,我们选取了 5000 多张无雾图片,然后剪切掉了天空区域,并且重新设置大小为 500X500,窗口大小为 15x15.图 4,显示了几幅户外图像和与之相对应的暗通道图。
在这里插入图片描述
图 4.(a)我们的无雾图像数据库中的示例图像 (b)与之对应的暗通道 (c)一幅有雾图像和它的暗通道

图 5a 是 5000 多张图片的暗通道亮度直方图,图 5b 是对应的累积分布。我们可以看到大约 75的暗通道中的像素值为 0,90的像素值低于 25.这个数据结果强有力的支持了我们的暗通道先验。我们也计算了每个暗通道的平均亮度值并且作了与之对应的直方图(图 5c)。所以,大多数暗通道有非常低的平均亮度,显示只有非常小的一部分户外无雾图像不符合我们的先验条件。
   由于加性的大气光,一个有雾的图像要比一个传输率低的无雾图像明亮。所以,有雾图像的暗通道会在有雾区域有更高的亮度(见图 4c)显而易见地,安通的的亮度值是一个关于雾的厚度的粗略估计。在下一节,我们会使用一些特性来估计传输率和大气光。
   注意我们忽略天空区域因为无雾图像的暗通道可能会在天空区域有很高的亮度。幸运的是,我们可以很优雅的用雾图模型(1)和先验条件来处理天空区域。不必非常清楚的把天空区域去除。我们会在 4.1 节讨论这个问题。
   我们的暗通道先验是部分受启发于在多光谱远程感应系统广为使用的知名的暗物体抠除技术【12】, 在【12】中,空间同性的雾是通过减去一个对应场景中最暗物体的恒定值。我们综合了这个想法并且为自然图片去雾提出了这个新奇的先验。
在这里插入图片描述

图 5.暗通道的统计结果 (a)5000 个暗通道的像素亮度直方图(每位代表 16 个灰度级)(b)累积分布 (c)每个暗通道的平均亮度直方图

四、 用暗通道先验去雾
4.1估计传输率
我们假设大气光 A 已知。在 4.3 节已提出了一个方法估计 A。我们首先归一化雾图等式(1):
在这里插入图片描述
注意我们对每个颜色通道独立进行归一化。
我们更进一步假设在局部窗口Ω(x)中为恒定的。我们设这个传输率为~t(x), 我们计算了(7)等式两边的暗通道,并在两边同时取最小值:

在这里插入图片描述

因为~t(x)在局部区域是恒定的,它可以放在最小符外面。因为 J 是无雾图像,所以 J 的暗通道由于先验是趋近于 0 的:
在这里插入图片描述

因为𝐴𝑐永远是正的,所以可以推出:
在这里插入图片描述
将(10)代入(8),我们可以消去乘性项,并且粗略估计传输率 t:~t(x)=1-𝑚𝑖𝑛

事实上,𝑚𝑖𝑛

(𝑚𝑖𝑛 𝐽𝑐(𝑦))是𝐼𝑐(𝑦) 的归一化后的暗通道。它可以直接估计传输率。
在这里插入图片描述
   正如我们之前所提过的,暗通道先验对于天空区域是不适用的。幸运的是,一幅有雾图像中天空的颜色往往非常接近于天空光 A,所以,在天空区域,我们可以设:𝑚𝑖𝑛𝑦∈𝛺(𝑥)
   并且由(11)可以得出~t(x)->0. 因为天空是无限远的所以它的传输率事实上是接近于 0(见(2)),(11)式巧妙的同时处理了天空区域与非天空区域,所以我们不需要事先分离天空区域。
事实上,即使在晴朗的日子大气也并非是完全没有雾没有任何粒子的。所以当我们看向远处的物体时候雾是事实存在的。更确切的说,因为雾的存在使得人们能够辨别景深【13】,【14】,这个现象叫做空间透视。如果我们完全移除了雾,这个图像可能会显得不自然,我们也感受不到景深。所以我们有选择的保持了非常少量的雾,通过在(11)引入一个恒定参数 ω(0<ω≤1):
在这里插入图片描述
   这个改进好的一点是我们可以可调节的为远处的物体保留雾,这个 ω 的值视实际应用而定,在本文中,我们一律使用 0.95.
   在(11)的推导中,暗通道先验对于消除在雾霾成像模型(1)中的乘性项(直接传输率)是至关重要的。只有加性项还残留。这个策略与之前【10】【11】中所提到的非常依赖乘性项单幅图像图像去雾方法完全不同,之前的方法非常依赖乘性项改变图像对比度【11】和色彩变化【10】的因素。对比之下,我们注意到加性项改变暗像素的亮度。有了暗通道先验后,我们可以不用管乘性项而只使用加性项去估计传输率。我们可以更进一步总结(1):I(x)=J(x)t1(x)+A(1-t2(x)), (13)
而在这之中 t1,t2 没必要相同。使用(11)中推导的方法,我们可以估计 t2 并且分理处加性项。这个问题就简化为一个乘性项(J(x)t1),而其他的约束项或先验条件可以进一步求解这个项。在人类视觉研究的文献中【15】,加性项被称作光度耗散,而式(13)可用来表达透过雾或耀眼的亮光看场景。
图 6b 显示了通过(12)估计的传输率图。图 6d 显示了与之对应的还原的图像。 我们可以看到, 暗通道先验有效的还原了颜色和被遮住的低对比度物体。传输率图显示的非常合理,不过主要的问题是有光晕和黑点,主要是因为传输率并不总是在局部恒定,我们将在下一节介绍一个软抠图方法去修复传输率图。

在这里插入图片描述

图 6 图像去雾 (a)输入有雾图像(b)软抠图之前传输率图估计(c)软抠图之后传输率图估计
(d),(e)对应(b)(c)还原的图像

5.实验结果
   在我们的实验中,我们用 van Herk 的快速算法【20】计算了最小值滤波,该算法的复杂度与图像尺寸成线性关系。在软抠图步骤中,我们使用了 Preconditioned Conjugate Gradient(PCG),花了大概 10-20 秒去处理一幅 600x400 的图像,我们的配置是 3.0GHz Intel Pentium 4 Processor.
图 1 和 12 展示了恢复图像和深度图。深度图是根据(2)并且是根据一个未知的测量参数β。大气
光的估计方法采用 4.3 节所介绍的。正如所见到的,我们的方法可以揭示图像细节并且将图像从浓雾区域还原。估计的深度图在景深边缘尖锐并且与输入图像保持一致。
我们的方法也可以用于灰度图像处理如果有足够的阴影的话。城市景观的图像通常满足这个条件,如此我们忽略运算符 minc。图 13 为例。
   在图 14 中,我们将我们的方法与 Tan 的方法【11】做了个比较。他的结果有过饱和的颜色因为最大化的了对比度意味着过大估计雾层。我们的方法没有这种现象并且光晕现象也小很多。
我们将我们的方法与 Fattal 的方法做了比较,在图 8,我们的结果相比于 Fattal 的结果。在图 15, 我们展示了我们的方法结果比 Fatttal 的方法在处理浓雾时更好。他的方法是基于局部数据并且提供充足的颜色信息与方差。当雾很浓时,颜色会变淡而且方差会变小不足以支撑用他的方法去估计传输率。图 15b 和图 15c 显示了他的结果在经过 MRF 插值前后的结果,因为只有部分传输率恢复的是可靠的,而经过插值后有些区域依旧太暗(山)而有些雾仍旧没有去处(城市的远处)。我们的方法给出了更好更自然的结果。(图 15d)
   我们也将我们的方法与 Kopf et al.的方法【8】做了比较(图 16)。他们使用了场景的 3D 模型与纹理图来去雾。他们的信息来自于 Google Earth 和卫星图像,我们不需要这么多额外信息也可以得到类似的结果。
   在图 17 中,我们更进一步比较了我们的方法与之前的一些方法。图 17e 显示了 Photoshop 的 auto curve 功能。它和暗物体去除方法应用到每个颜色通道【12】相同。
在这里插入图片描述
图 10 (a)一幅 600x400 的有雾图像(b)用 3x3 窗口恢复的图像(c)用 15x15 窗口恢复的图像 (没有软抠图) 用小窗口恢复的图像有过饱和现象,而大窗口恢复的图像有光晕现象。
在这里插入图片描述
图 11.用不同窗口大小处理图像(软抠图之后)(a)输入图像(b)用 3x3 窗口大小(c)用 15x15 窗口(d)用 30x30 窗口
在这里插入图片描述
图 12 去雾结果 (a)输入雾图(b)还原的无雾图像(c)深度图 顶行红框表示我们实际取大气光的位置
在这里插入图片描述
图 13 一幅灰度图像 (a)输入图像(b)我们的结果(c)恢复的深度图
在这里插入图片描述
图 14,与 Tan 的比较(a)输入图像(b)Tan 的结果(c)我们的结果
在这里插入图片描述

图 15 与 Fattal 的比较(a)输入图像(b)插值前的结果,用 Fattal 的方法,在黑色区域的传输率无法估计(c)Fattal 的结果(插值后)(d)我们的结果
6.讨论
   在本文中,我们提出了一种非常简单但功能强大的前一种方法,即暗通道先验,用于单个图像去雾处理。暗通道先验是基于户外无图像图像的统计数据。将先验条件与霾成像模型相结合,单一图像模糊处理更简单和更有效。
   因为暗通道先验是一种经过统计数据得出的结论,所以它可能不适用于某些特定的图像。
当场景中的物体与大气的光线内在相似的时候,并且没有阴影投射在它们上(如图 18 中的白色大理石),暗通道先验是无效的。在这类物体附近,暗通道的亮度是高的。因此,我们的方法将会低估这些物体的传播率并高估了霾层。
   还有,我们的方法是依赖于雾图成像模型的(1),当模型不成立时可能会失效。首先,恒定的大气光可能不适用于当阳光十分构成影响的情况。 在图 19a,大气光在左侧很充足而右侧很按。 我们自动估计的 A(图 19c)实际并不是其它区域的 A,所以回复出来的天空区域会比它原本要暗(图 19b) 更加先进的模型【14】可以用来描述这种复杂的情况。第二,传输率 t 具有波长依赖性如果空气中的粒子很小而物体很远(很薄的雾)【7】。在这种情况下,传输率在不同颜色通道中是不同的。这就是为什么接近地平线的物体会比较蓝(图 19a)因为成雾模型假设所有通道的传输率相同,所以我们的方法也可能会对远处物体场景辐射还原失效。我们把这个问题留给以后的研究。

文献引用
[1]H. Koschmieder, “Theorie der Horizontalen Sichtweite,” Beitr.Phys. Freien Atm., vol. 12, pp. 171-181, 1924.
[2]S.G. Narasimhan and S.K. Nayar, “Vision and the Atmosphere,”Int’l J. Computer Vision, vol. 48, pp. 233-254, 2002.
3] Y.Y. Schechner, S.G. Narasimhan, and S.K. Nayar, “Instant Dehazing of Images Using Polarization,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, vol. 1, pp. 325-332, 2001.
[4]S. Shwartz, E. Namer, and Y.Y. Schechner, “Blind Haze Separation,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, vol. 2, pp. 1984-1991, 2006.
[5]S.G. Narasimhan and S.K. Nayar, “Chromatic Framework for Vision in Bad Weather,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, vol. 1, pp. 598-605, June 2000.
[6]S.K. Nayar and S.G. Narasimhan, “Vision in Bad Weather,” Proc. Seventh IEEE Int’l Conf. Computer Vision, vol. 2, pp. 820-827, 1999.
[7]S.G. Narasimhan and S.K. Nayar, “Contrast Restoration of Weather Degraded Images,” IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 25, no. 6 pp. 713-724, June 2003. [8] J. Kopf, B. Neubert, B. Chen, M. Cohen,
D. Cohen-Or, O. Deussen, M. Uyttendaele, and D. Lischinski, “Deep Photo: Model-Based Photograph Enhancement and Viewing,” ACM Trans. Graphics, vol. 27, no. 5, pp. 116:1-116:10, 2008.
[9]S.G. Narasimhan and S.K. Nayar, “Interactive Deweathering of an Image Using Physical Models,” Proc. IEEE Workshop Color and Photometric Methods in Computer Vision, in Conjunction with IEEE Int’l Conf. Computer Vision, Oct. 2003.
[10]R. Fattal, “Single Image Dehazing,” Proc. ACM SIGGRAPH ’08, 2008.
[11]R. Tan, “Visibility in Bad Weather from a Single Image,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, June 2008.
[12]P. Chavez, “An Improved Dark-Object Subtraction Technique for Atmospheric Scattering Correction of Multispectral Data,” Remote Sensing of Environment, vol. 24, pp. 450-479, 1988.
[13]E.B. Goldstein, Sensation and Perception. Cengage Learning 1980.
[14]A.J. Preetham, P. Shirley, and B. Smits, “A Practical Analytic Model for Daylight,” Proc. ACM SIGGRAPH ’99, 1999.
[15]A.L. Gilchrist and A. Jacobsen, “Lightness Constancy through a Veiling Luminance,” J. Experimental Psychology: Human Perception
and Performance, vol. 9, no. 6, pp. 936-944, 1983. 2352 IEEE TRANSACTIONS ON PATTERN ANALYSIS AND
MACHINE INTELLIGENCE, VOL. 33, NO. 12, DECEMBER 2011
Fig. 19. Failure of the haze imaging model. (a) Input image. (b) Our result. © Dark channel. Red pixels indicate where the atmospheric light is
estimated. (d) Estimated transmission map.
Fig. 18. Failure of the dark channel prior. (a) Input image. (b) Our result. © Our transmission map. The transmission of the marble is
underestimated.
[16]A. Levin, D. Lischinski, and Y. Weiss, “A Closed Form Solution to Natural Image Matting,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, vol. 1, pp. 61-68, 2006.
[17]I. Omer and M. Werman, “Color Lines: Image Specific Color Representation,” Proc. IEEE Conf. Computer Vision and Pattern Recognition, vol. 2, pp. 946-953, June 2004.
[18]E. Hsu, T. Mertens, S. Paris, S. Avidan, and F. Durand, “Light Mixture Estimation for Spatially Varying White Balance,” Proc. ACM SIGGRAPH ’08, 2008.
[19]C. Tomasi and R. Manduchi, “Bilateral Filtering for Gray and Color Images,” Proc. Sixth IEEE Int’l Conf. Computer Vision, p. 839,
1998.
[20]M. van Herk, “A Fast Algorithm for Local Minimum and Maximum Filters on Rectangular and Octagonal Kernels,” Pattern Recognition Letters, vol. 13, pp. 517-521, 1992.

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值