OpenCV-Python图形图像处理:split通道拆分和数组矩阵访问通道

RGB颜色空间的拆分 - 使用 OpenCV split 以及数组 如果是针对白底的图片,这样的显示方式通常都达不到想要的效果,如底下代码所示,因为白底会导致整个单一通道的显示呈现单一通道的底色,这样反而不容易凸显出目标物。此外,人类眼中的红蓝绿,常常是混合的结果,所以,如果要单独找出红蓝绿颜色,通常是使用 HSV 的颜色空间。将彩色图片依照BGR通道来分割,以下示例将上面生成的 diy.jpg 图片的每一个通道单独显示一张图片,从显示的顺序可以发现,通道依序是红(0)、绿(1)、蓝(2)。图 1. 显示 BGR 与 RGB(A) 格式的差异,右手边的图形配色才是正确的。 阅读详情
☞ ░ 前往老猿Python博客 https://blog.youkuaiyun.com/LaoYuanPython ░

一、引言

在OpenCV中,图像装载后以矩阵保存,对于灰度图矩阵为二维矩阵,对于彩色图像则为三维矩阵。彩色图像又分为BGR格式和BGRA格式,BGR格式对于像素的蓝、绿、红三个通道,BGRA格式蓝、绿、红三个颜色通道加一个代表透明度的阿尔法通道。有时出于处理需要,需要针对图像矩阵的单个通道进行处理,这时就需要进行图像单通道数据的访问。

二、使用split拆分图像通道

OpenCV提供了专门的通道拆分的函数split,调用语法如下:
split(img, mv=None)
其中的参数为输入图像矩阵,mv是可选的拆分后结果,一般不需要,因为该函数返回的就是拆分的结果。
返回值为一个列表对象,对象的元素个数为输入图像的通道数,每个元素为一个二维矩阵,内容为每个通道的数据。如BGRA格式的图像,则返回4个元素,每个元素分别对应B、G、R、A四个通道的数据。

示例代码:

>>> import cv2
>>> img = cv2.imread(r'f:\pic\ring.png',cv2.IMREAD_UNCHANGED)
>>> img.shape
(742, 1156, 4)
>>> ret = cv2.split(img)
>>> len(ret)
4
>>> B,G,R,A = ret
>>> B
array([[28, 28, 28, ..., 29, 29, 29],
       [28, 28, 28, ..., 29, 29, 29],
       [28, 28, 28, ..., 29, 29, 29],
       ...,
       [35, 35, 35, ..., 35, 35, 35],
       [35, 35, 35, ..., 35, 35, 35],
       [35, 35, 35, ..., 35, 35, 35]], dtype=uint8)
>>> B.shape
(742, 1156)

拆分的通道可以通过merge将其合并成一个图像矩阵,例如对上面拆分的4个通道的BGR通道进行合并,可以执行如下代码:

>>> imgBGR = cv2.merge((B,G,R))
>>> imgBGR.shape
(742, 1156, 3)

三、使用矩阵进行通道数据访问

由于图像在OpenCV中为矩阵,就可以直接使用numpy的矩阵索引来进行矩阵数据的访问。例如要针对输入图像img分别获取BGR通道的数据,可以执行如下代码:

    imgBlueC0 = img[:,:,0]
    imgBlueC1 = img[:, :, 1]
    imgBlueC2 = img[:, :, 2]

四、关于通道拆分的建议

  1. 通道拆分和合并操作对应图像来说处理开销比较大,建议仅在必要时才进行
  2. 对于通道拆分,numpy矩阵索引性能要优于OpenCV,图像越大,numpy矩阵索引性能越优

五、一个通道拆分对比的例子

针对如下图像(文件名:手握蓝球.JPG):
在这里插入图片描述
我们使用两种通道拆分方式分别拆分,然后对比一下拆分结果:

import cv2
import numpy as np

from opencvPublic import preparePreviewImg,previewImgList,previewImg,cmpMatrix,readImgFile

def main():
    imgFName = r'f:\pic\手握蓝球.JPG'

    img = readImgFile(imgFName, False) #自定义读入图片文件的函数,readImgFile(filename,bConvertGray=False,bConvertBinImg=False,bConvertKernal = False)
    imgBlue,imgGreen,imgRed = cv2.split(img)
    imgBlueAnd = cv2.bitwise_and(img,255)
    imgBlueC0 = img[:,:,0]
    imgBlueC1 = img[:, :, 1]
    imgBlueC2 = img[:, :, 2]

    preparePreviewImg(img, imgFName + ': 原图')

    preparePreviewImg(imgBlue, '原图split后B通道')
    preparePreviewImg(imgGreen,  '原图split后G通道')
    preparePreviewImg(imgRed, '原图split后R通道')
    preparePreviewImg(imgBlueAnd, 'imgBlueAnd')
    preparePreviewImg(imgBlueC0, '原图0号通道(B通道)')
    preparePreviewImg(imgBlueC1, '原图1号通道(G通道)')
    preparePreviewImg(imgBlueC2, '原图2号通道(R通道)')

    retB = cmpMatrix(imgBlue, imgBlueC0)
    retG = cmpMatrix(imgGreen, imgBlueC1)
    retR = cmpMatrix(imgRed, imgBlueC2)
    print(f"split拆分图像3通道与图像矩阵数字3通道访问图像比对结果如下:{(retB,retG,retR)}")


    previewImgList()
    cv2.waitKey(5000)

main()

上述代码中从opencvPublic模块导入的函数请参考《https://blog.youkuaiyun.com/LaoYuanPython/article/details/111351901:OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍》的介绍。

执行程序后,运行后显示的图像如下:
在这里插入图片描述
系统输出的文本信息如下:

split拆分图像3通道与图像矩阵数字3通道访问图像比对结果如下:(True, True, True)

从以上结果可以看到,两种拆分方式的通道数据完全相同。另外由于拆分后的通道数据被作为灰度图像对待,因此显示的图像为灰度图。上图中imgBlueAnd 对应图像为彩色图像位于255标量后的结果图像,因为值保留了蓝色通道的值,其他通道的值被置为0,因此显示为整体蓝色的图像。

六、小结

本文介绍了OpenCV图像通道拆分的两种方式,可以看到,OpenCV的split函数和numpy的矩阵索引两种拆分方式得到的结果数据是相同的,但numpy矩阵索引方式性能更好。因此图像通道的拆分非必要不执行,如果要执行,尽量采用numpy矩阵操作。

写博不易,敬请支持:

昨天到今天休假两天,既要处理家里事情,又要处理单位事情,还要写测试代码和博文。写博不易,敬请支持!
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

更多OpenCV-Python的介绍请参考专栏《OpenCV-Python图形图像处理 》
专栏网址:https://blog.youkuaiyun.com/laoyuanpython/category_9979286.html

关于老猿的付费专栏

  1. 付费专栏《https://blog.youkuaiyun.com/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.youkuaiyun.com/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.youkuaiyun.com/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.youkuaiyun.com/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.youkuaiyun.com/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.youkuaiyun.com/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.youkuaiyun.com/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.youkuaiyun.com/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.youkuaiyun.com/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

跟老猿学Python、学OpenCV!

☞ ░ 前往老猿Python博文目录 https://blog.youkuaiyun.com/LaoYuanPython ░
OpenCv学习笔记(四):使用split函数提取彩色图像的三个通道 split函数的主要功能是把一个彩色图像分割成3个通道,方便进一步的图像处理,具体说明如下: split Divides a multi-channel array into several single-channel arrays. C++: void split(const Mat& mtx, Mat* mv) C++: void split(const Mat& mtx, vecto 阅读详情

相关推荐

最全!万字长文总结opencv-python常用函数(一)

在这个系列文章中,我们将深入探索OpenCV这一强大的计算机视觉库,详细介绍其常用函数。从基本的图像读取与显示,到高级的图像处理技巧,我们将一步步带领大家掌握OpenCV的核心功能,助您轻松应对各种计算机视觉任务。

HanWenKing的博客 1852

OpenCV-Python教程:通道分离、通道合并(split、merge)

原文链接:http://www.juzicode.com/archives/5612 返回Opencv-Python教程 彩色图像是包含多通道的图像,比如用BGR三通道表示的彩色图像,或者是包含了alpha通道的BGRA四通道图像。有时做图像处理时如果多通道同时处理,可能并不能达到很好的效果,但是如果分离出某一个通道出来处理可能会有更好的效果,一个例子是在来看看怎么用OpenCV解构Twitter大牛jagarikin的视觉错觉图一文中可以看到在做二值化时只处理HSV色彩空间中的S分量效果更好。 ..

桔子code 的博客 5242

opencv-python常用函数解析及参数介绍(一)——图像读取及其通道与灰度

本文将简单介绍opencv-python中的图像以及视频的读取,并且介绍灰度图与彩图的通道,以及灰度图与单通道的联系与区别。

艾醒的博客 3389

OpenCV-Python学习(9)—— OpenCV 通道的分离与合并(cv.split、cv.merge、cv.mixChannels、cv.inRange)

对于 openCV 使用的BGR 格式图像,返回的分拆通道的次序为 B、G、R 通道。BGR 彩色图像的数据形状为 (width, height, channels=3),返回的 B/G/R 通道的数据形状为 (width, height),不能按照 BGR 彩色图像直接显示。如果直接用 imshow 显示返回的单通道对象,将被视为 (width, height) 形状的灰度图像显示。

止于至善 4034

OpenCV-Python实战(4)——OpenCV常见图像处理技术

图像处理技术是计算机视觉项目的核心,通常是计算机视觉项目中的关键工具,可以使用它们来完成各种计算机视觉任务。因此,如果要构建计算机视觉项目,就需要对图像处理有足够的了解。在本文中,将介绍计算机视觉项目中常见的图像处理技术,主要包括图像的几何变换和图像滤波等。

盼小辉丶的博客 3万+

python-OpenCV图像处理常用函数汇总(三)

python-OpenCV常用图像处理函数汇总

菜鸟郭 3000

OpenCV 直方图计算实战:从 calcHist 的 bins/dims/range 原理到 BGR 三通道直方图可视化

**导读**:本文围绕 OpenCV 官方教程中的直方图计算(Histogram Calculation)主题展开,以 [calcHist_Demo.cpp](https://link.gitcode.com/i/616bca6e5cb7f18491a92c89ef7db323) 演示程序为主线,系统讲解直方图(histogram)的数学概念、`cv::calcHist` 的核心参数(`dims`

gitblog_00599的博客 664

OpenCV-Python实战(32)——基于深度学习的物体分类与定位

在本节中,我们使用 Oxford-IIIT-Pet 数据集创建并训练了分类和定位模型。我们学习了如何使用迁移学习来创建深度学习分类器和定位器。我们已经开始理解如何使用深度学习来解决现实世界的问题,已经理解了 CNN 的工作原理,并且知道如何使用基础模型创建新的 CNN。我们还介绍了用于计算梯度的反向传播算法。理解该算法将使我们能够在构建自定义模型架构时做出更明智的决策。

盼小辉丶的博客 1725

OpenCV图像处理入门:从环境搭建到边缘检测实战

图像处理是计算机视觉领域中基础且关键的技术方向,其通过滤波、颜色变换、形态学操作等手段对图像进行增强与特征提取,为后续的检测与识别任务提供高质量输入。OpenCV作为开源图像处理库,凭借跨平台特性和丰富的API,成为工程实践中应用最广泛的工具之一,尤其在边缘检测、轮廓查找等任务中表现突出。理解其核心原理,如像素矩阵结构、颜色空间转换、边缘检测与形态学操作,有助于开发者灵活调整参数并解决实际场景中的噪声干扰、目标定位等问题。从环境安装、基础操作到项目实战,本文提供了一条可复现的入门路径,帮助初学者快速掌握Op

weixin_34242331的博客 480

2023东华大学机试OJ进阶版1-81题

先排序。每次找两个最小的数,把其中一个置为两数之和,并累加这个和值,另一个数置为-1,然后再排序,重复操作,直到只剩下一个数。105。

m0_49263811的博客 2797

解决usbisp不识别无法烧录Atmega328P,Arduino不识别问题

如果使用Arduino IDE里面的烧录,可能会遇到一个问题,就是不识别国产这种廉价的USBISP 点击烧录引导程序,会遭遇到找不到USB设备的问题,选哪个都会提示找不到,比如选择USBasp could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' 因此,我们需要使用到progisp这一个软件的1.72版本 选择好芯片的型号后,调用编译好的HEX文...

arenascat的博客 7439

OpenCV(Python 版)

计算机中的图像本质上是由无数像素组成的网格,彩色图像通常通过红(R)、绿(G)、蓝(B)三个独立的颜色通道来记录信息,每个通道都是一个二维数字矩阵,矩阵中的数值代表对应位置像素该颜色的亮度(通常为 0-255),三个通道的数值组合决定了像素最终呈现的颜色,计算机存储的就是这些通道矩阵数据,以及图像的宽、高、通道数等元信息。

qq_32381773的博客 409

PyWxDump实战:解密微信PC端本地数据库,实现聊天记录备份与分析

数据加密是保护敏感信息(如聊天记录)的核心技术,它通过特定算法将明文转换为密文,确保数据在存储和传输过程中的机密性。SQLCipher作为SQLite的加密扩展,采用AES-256算法对数据库文件进行页级加密,广泛应用于移动端和桌面端应用的数据保护。其技术价值在于,在保障用户隐私的前提下,为合规的数据备份、归档与分析提供了底层支持。在数据恢复、司法取证或合规审计等场景中,获取并解析此类加密数据是关键步骤。PyWxDump正是针对微信PC端本地SQLCipher加密数据库设计的工具,它通过逆向工程分析内存结构

451

不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?

作者 |Lazar Gugleta译者 |Arvin,责编 | 夕颜头图 | 优快云付费下载自视觉中国出品 | 优快云(ID:优快云news)计算机视觉和计算机图形学现在非常流...

AI科技大本营 730

21天学会PCIe专栏(4.3)--PCIe配置方法

通过本节的学习,你应该对PCIe配置方法有了更深入的了解。软件配置方法包括直接访问和间接访问,可以通过特定的I/O指令或系统调用进行配置。硬件配置方法包括通过BIOS/UEFI设置和跳线设置,可以根据需要修改PCIe设备的配置参数。

xiaoheshang_123的博客 722

低代码部署与管理——OpenClaw智能助手的应用部署与运维(2026技术版)

OpenClaw智能助手的低代码部署与管理平台采用分层架构设计,包含部署工具、环境管理、版本控制等核心模块,支持从开发到生产的全流程自动化部署。该系统通过Docker、Kubernetes等技术实现应用构建和部署,利用Terraform等工具管理多环境配置,并提供完善的监控运维能力。平台针对开发、测试、预生产和生产环境提供差异化配置,确保部署效率和运行可靠性。这种架构设计遵循自动化、可扩展性和安全性原则,显著提升了智能助手应用的部署效率和运维质量。

一键难忘的博客 319

OpenCV计算机视觉快速入门:从基础操作到人脸检测实战

计算机视觉是人工智能领域的关键技术,旨在让计算机理解和处理图像与视频信息。其核心原理在于通过算法对数字图像进行分析,提取特征并识别模式。这项技术的价值在于能将视觉信息转化为可计算、可操作的数据,广泛应用于自动化、人机交互和智能分析。在工程实践中,图像处理、特征检测和目标识别是构建视觉应用的基础。OpenCV作为跨平台的计算机视觉库,提供了从基础的图像读写、像素操作到高级的特征提取、目标跟踪等完整工具链,是实现这些功能的行业标准工具。通过掌握OpenCV,开发者可以高效地处理图像滤波、轮廓分析等任务,并快速搭

weixin_34043301的博客 317

【C#学习记录】如何让界面控件实现自适应布局(Winform)

小伙伴们大家好,我是雷工!在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。

做有价值的事,积累有价值的笔记! 1万+

100个OpenCV练手项目:从环境搭建到实战的完整路线

计算机视觉作为人工智能的重要分支,核心是让机器理解图像数据。而图像处理则是计算机视觉的基础,涉及滤波、边缘检测、轮廓分析等一系列操作。学习OpenCV这一主流视觉工具库时,若只记忆API而缺少项目实践,很难真正掌握图像数据的处理逻辑与参数调优方法。通过项目驱动的方式,能够在真实任务中理解从图像读取、预处理到算法组合的完整链路,从而提升解决实际工程问题的能力。这类技能广泛应用于人脸识别、目标检测、文档矫正、工业质检等场景。本文围绕100个OpenCV练手项目,提供从环境搭建、难度分层到项目速查的完整路线,帮助

weixin_34321753的博客 410

002、搭建你的第一个Agent开发环境:Python与核心库安装

在上一篇《Agent智能体开发入门:概念、应用与前景》中,我们描绘了Agent智能体的宏伟蓝图,理解了其作为“数字员工”的巨大潜力。然而,许多开发者在迈出第一步时,常常被复杂的依赖、版本冲突和晦涩的配置所劝退,空有想法却无从下手。这种感觉就像拿到了一张藏宝图,却找不到出发的港口。本文正是你的“启航指南”。我们将彻底解决这个痛点,通过一个清晰、可复现的流程,为你搭建一个专为Agent开发量身定制的Python环境。一个纯净、隔离的Python虚拟环境,避免项目间的“依赖地狱”。一套经过验证的核心工具链。

G_RE_RE的博客 111

OpenCV-Python实战(3)——OpenCV中绘制图形与文本

OpenCV 是一个的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本文介绍了 OpenCV 提供的与绘制图形和文本相关的函数。在图形方面,我们了解了如何绘制基本图形(直线、矩形和圆形等)以及高级图形(剪裁线、箭头、椭圆和多边形)。在文本方面,我们了解了如何绘制文本以及 OpenCV 库中的所有可用字体。

盼小辉丶的博客 2万+

OpenCV 4 从安装到选型:模块、Mat与避坑实战

图像处理与计算机视觉的核心,是把图像当作矩阵进行读写、滤波、变换与特征分析。OpenCV 作为经典开源视觉库,以 cv2 模块提供从 imread、cvtColor 到 DNN 推理的底层算子,并通过 Mat 这一头数据分离的矩阵容器实现高效内存共享与 ROI 操作。其价值在于跨平台、免编译开箱即用,且 Apache 2.0 许可对商用友好,广泛用于工业检测、人脸门禁、摄像头颜色识别和轻量模型部署。实际落地时,opencv-python 安装、Anaconda 环境隔离、pip 与 conda 混用、模块缺

weixin_34082854的博客 368

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python图像合成实战:两张大头照拼接与融合技术详解

图像合成是计算机视觉与数字图像处理中的基础技术,其核心原理是通过像素级操作将多张图像合并为单一视觉输出。在技术实现层面,主要涉及图像读取、尺寸归一化、像素混合与透明度处理等关键步骤。该技术的工程价值在于能够高效实现自动化内容生成,广泛应用于趣味头像制作、社交媒体内容创作、对比图生成等场景。本文聚焦使用Python的Pillow库,通过实战代码演示如何实现两张大头照的左右拼接与半透明融合,涵盖从环境搭建到性能优化的完整流程,为图像处理入门与项目集成提供可直接复用的解决方案。

weixin_34216196的博客 351

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OpenCV

开运算会去掉原图中的 “亮小点点”(亮噪点),用原图减去开运算图,剩下的就是这些被去掉的「亮噪点 / 局部亮区」,提取图像中比周围区域更亮的小区域(比如黑背景上的白噪点、文字边缘的亮毛刺)。闭运算会填充原图中的 “暗小点点”(暗空洞),用闭运算图减去原图,剩下的就是这些被填充的「暗噪点 / 局部暗区」,提取图像中比周围区域更暗的小区域(比如白背景上的黑噪点、文字内部的暗空洞)。,专门用于检测图像边缘 —— 它通过计算像素在 X(横向)和 Y(纵向)方向的灰度变化率(梯度),找到像素值突变的区域(边缘)。

weixin_56766801的博客 638

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

中cv2高斯函数_不知道这 7 大 OpenCV 函数怎么向计算机视觉专家进阶?

作者 | Lazar Gugleta译者 | Arvin,责编 | 夕颜头图 | 优快云付费下载自视觉中国出品 | 优快云(ID:优快云news)计算机视觉和计算机图形学现在非常流行,因为它们与人工智能息息相关,它们主要的共同点是使用同一个OpenCV库,以理解数字图像或视频(CV)或生成图像(CG)中深层含义。这就是为什么我们今天要分析为计算机科学众多重要领域提供动力的OpenCV库,找出...

weixin_30635315的博客 160

CTF图片隐写实战:5种高频技巧与Python脚本解析

隐写术是一种将秘密信息隐藏在数字载体中的技术,其核心原理是利用文件格式的冗余空间或人眼感知的局限性来嵌入数据。在网络安全领域,隐写术不仅是一种信息隐藏手段,也常被用于渗透测试和数据防泄露检测。从技术价值看,掌握隐写分析能力有助于理解数字取证、数据安全传输等实际应用场景。本文聚焦于CTF竞赛中的图片隐写,通过解析PNG文件结构、LSB隐写等高频考点,结合Python脚本实现自动化分析。针对BuuCTF等实战环境,文章详细拆解了文件结构嵌套、最低有效位修改、数据块隐写等典型手法,并提供了可复用的修复脚本,帮助安

weixin_30835649的博客 409
上一篇: OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍
下一篇: Python图像处理:OpenCV HSV和标准表示法的区别以及转换
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值