OpenCV-Python学习笔记2 变亮、变暗、日落、水印等

cv2.getPerspectiveTransform 透视变换函数解析 简介 透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。如图,通过透视变换ABC变换到A’B’C’。 函数解析 cv2.getPerspectiveTransform(src, dst) 参数说明: src:源图像中待测矩形的四点坐标 sdt:目标图像中矩形的四点坐标 cv2.warpPerspective(src,M,dsize,dst,flags,borderMod 阅读详情

在这里插入图片描述

一、调节图像亮度

1. 遍历像素点

调节原理:将像素值变小,全部色彩变暗;将像素值变大,全部色彩变亮。

# -*- coding: utf-8 -*-
import cv2

fn = "test.png"
if __name__ == '__main__':
    print('loading... %s' % fn)
    print(u'显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print(u'正在处理中')
    w = img.shape[1]
    h = img.shape[0]

    # 全部变暗
    for xi in range(0, w):
        for xj in range(0, h):
            # 将像素值整体减少,设为原像素值的20%
            img[xj, xi, 0] = int(img[xj, xi, 0] * 0.2)
            img[xj, xi, 1] = int(img[xj, xi, 1] * 0.2)
            img[xj, xi, 2] = int(img[xj, xi, 2] * 0.2)
        # 显示进度条
        if xi % 10 == 0:
            print('.')
    cv2.namedWindow('dark')
    cv2.imshow('dark', img)
    cv2.waitKey()
    cv2.destroyAllWindows()


这里写图片描述

变亮的代码类似,把像素值整体变大即可,如:

            img[xj,xi,0]=int(img[xj,xi,0]*10.2)
            img[xj,xi,1]=int(img[xj,xi,1]*10.2)
            img[xj,xi,2]=int(img[xj,xi,2]*10.2)

2. OpenCV原生方法来把图像变暗

import cv2
import numpy as np

fn = "test.png"

if __name__ == '__main__':
    print('loading... %s' % fn)
    print('显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print('正在处理中')

    # 将图像的所有像素值降低到原始值的20%
    img_dark = (img * 0.2).clip(0, 255).astype(np.uint8)

    cv2.namedWindow('dark')
    cv2.imshow('dark', img_dark)
    cv2.waitKey()
    cv2.destroyAllWindows()

在这里插入图片描述

二、图像日落效果

1. 遍历

将蓝色值和绿色值设为原来的70%,红色值不变。

# -*- coding: utf-8 -*-
import cv2

fn = "test.png"
if __name__ == '__main__':
    print('loading... %s' % fn)
    print(u'显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print(u'正在处理中')
    w = img.shape[1]
    h = img.shape[0]

    for xi in range(0, w):
        for xj in range(0, h):
            img[xj, xi, 0] = int(img[xj, xi, 0] * 0.7)
            img[xj, xi, 1] = int(img[xj, xi, 1] * 0.7)
        # 显示进度条
        if xi % 10 == 0:
            print('.')
    cv2.namedWindow('sunset')
    cv2.imshow('sunset', img)
    cv2.waitKey()
    cv2.destroyAllWindows()


这里写图片描述

2. transform函数

cv2.transform 是 OpenCV 中用于对图像或点集进行线性变换的函数之一。它可以对图像进行仿射变换或透视变换,也可以对点集进行线性变换,例如旋转、缩放、平移等。

函数声明如下:

dst = cv2.transform(src, m)
  • src 是输入的图像或点集。
  • m 是变换矩阵,通常是一个 2x3 或 3x3 的浮点型矩阵,表示变换的参数。

对于图像变换,m 是一个 2x3 矩阵,定义了一个仿射变换。对于点集变换,m 可以是一个 3x3 矩阵,定义了一个透视变换。

  • 返回值 dst 是变换后的输出图像或点集。

3. OpenCV原生方法实现夕阳效果

下面示例 cv2.transform 来将权重矩阵应用到图像上,实现了夕阳效果。

import cv2
import numpy as np

fn = "test.png"

if __name__ == '__main__':
    print('loading... %s' % fn)
    print('显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print('正在处理中')

    # 创建一个权重矩阵,将红色通道的权重增加,绿色和蓝色通道的权重降低
    weights = np.array([[0.7, 0, 0],
                        [0, 0.7, 0],
                        [0, 0, 1]], dtype=np.float32)

    # 对图像应用权重矩阵
    img_sunset = cv2.transform(img, weights)

    cv2.namedWindow('sunset')
    cv2.imshow('sunset', img_sunset)
    cv2.waitKey()
    cv2.destroyAllWindows()

三、生成负片

1. 每个通道单独处理

# -*- coding: utf-8 -*-
import cv2

fn = "test.png"
if __name__ == '__main__':
    print('loading... %s' % fn)
    print(u'显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print(u'正在处理中')
    w = img.shape[1]
    h = img.shape[0]

    # 生成负片
    b, g, r = cv2.split(img)
    b = 255 - b
    g = 255 - g
    r = 255 - r  # 直接通过索引改变色彩分量
    img[:, :, 0] = b
    img[:, :, 1] = g
    img[:, :, 2] = r

    cv2.namedWindow('nagative')
    cv2.imshow('nagative', img)
    cv2.waitKey()
    cv2.destroyAllWindows()


这里写图片描述

2. 原生方法

import cv2

fn = "test.png"

if __name__ == '__main__':
    print('loading... %s' % fn)
    print('显示原图')
    img = cv2.imread(fn)
    cv2.namedWindow('source')
    cv2.imshow('source', img)

    print('正在处理中')

    # 生成负片
    img_negative = cv2.bitwise_not(img)

    cv2.namedWindow('negative')
    cv2.imshow('negative', img_negative)
    cv2.waitKey()
    cv2.destroyAllWindows()

四、加水印

1. cv2.putText

cv2.putText 函数用于在图像上绘制文本。它允许在图像上添加指定文本,并可以控制文本的字体、大小、颜色、位置等属性。以下是 cv2.putText 函数的参数说明:

cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

其中:

  • img: 输入图像,是一个 NumPy 数组。
  • text: 要绘制的文本字符串。
  • org: 文本的起始坐标(x,y),表示文本的左下角位置。
  • fontFace: 字体类型。可以使用预定义的字体类型,例如 cv2.FONT_HERSHEY_SIMPLEX、cv2.FONT_HERSHEY_PLAIN 等。
  • fontScale: 字体大小的缩放因子。
  • color: 文本颜色,通常是一个包含三个整数值的元组或列表(BGR 颜色格式)。
  • thickness: 文本的线条粗细(可选,默认为1)。
  • lineType: 线条类型,控制文本的外观(可选,默认为cv2.LINE_AA)。
  • bottomLeftOrigin: 可选参数,当为 True 时,坐标 org 表示文本左下角的位置;当为 False 时(默认),坐标 org 表示文本左上角的位置。

2. 实现

#-*- coding: utf-8 -*-
import cv2
import numpy as np
fn = "test1.jpg"
if __name__ =='__main__':
    print('loading... %s' % fn)
    print (u'正在处理中')
    img = cv2.imread(fn)
    w = img.shape[1]
    h = img.shape[0]

    cv2.putText(img,"Hello World",(2,20),cv2.FONT_HERSHEY_PLAIN, 2.0, (0,0,0), thickness = 2)
    
    cv2.namedWindow('watermark')
    cv2.imshow('watermark', img)
    cv2.waitKey()
    cv2.destroyAllWindows()

在这里插入图片描述

opencv-25 图像几何变换04- 透视 cv2.warpPerspective() 透视是一种几何学概念,用于描述在三维空间中观察物体时,由于视角的不同而产生的变形效果。在现实世界中,当我们从不同的角度或位置观察物体时,它们会呈现出不同的形状和大小。这种现象被称为透视效果。远近关系:在视野范围内,离我们更远的物体看起来较小,而离我们更近的物体看起来较大。这是因为我们在观察时,远处的物体在视平面上的投影较小。平行线收敛:在透视效果下,远离观察者的平行线在视觉上会似乎收敛到一个点,被称为消失点。这使得在远处的物体线条会看起来更加趋向于一点。视角变化。 阅读详情

相关推荐

Seedance2.5本地部署:免费AI视频生成与绘画全流程指南

扩散模型作为生成式AI的核心技术,通过逐步去噪的原理实现从文本到视觉内容的转换。这项技术的价值在于降低了高质量内容创作的门槛,在短视频制作、广告设计和教育培训等领域有广泛应用。本地部署的AI视频生成工具解决了数据隐私和成本问题,Seedance2.5作为支持扩散模型的典型代表,具备完整的文本编码、视频生成和后期处理模块。该工具支持多种输出格式和AI绘画功能,通过优化硬件要求使RTX 3060等中端显卡也能流畅运行。本文基于实际工程实践,详细解析从环境配置到高级功能的完整工作流。

weixin_30315723的博客 347

【计算机视觉】Python OpenCV 4高级编程与实战

本套课程主要讲解OpenCV 4 for Python的核心API的使用方法,并提供了大量的实战案例,课程的主要内容如下:OpenCV for Python的安装图像处理色彩空间通道Numpy与OpenCV的结合绘制图形阈值函数几何变换图像运算滤波器形态学方法图形检测匹配模板视频处理人脸识别效果图     

AI图像认知冲击与检测实战:从原理到工程防护

人工智能生成图像技术的快速普及,正在深刻改变人类获取与处理视觉信息的方式。从扩散模型到多模态预训练模型,AI不仅能够以极低成本生产逼真影像,也带来了认知失调、虚假记忆和信任感下降等潜在风险。本文从视觉认知原理出发,剖析AI图像为何能干扰人脑判断,并系统介绍频率域分析、CLIP语义一致性检测等主流技术方案。通过一个轻量级Python检测项目,展示如何综合多种信号识别AI生成图像,为内容平台和个人用户提供可落地的工程实践参考,帮助构建在真假难辨的视觉环境中保持清醒判断的认知防线。

weixin_33829657的博客 391

如何在OpenCV Python中执行矩阵变换?

函数对输入数组的每个元素执行矩阵变换。我们可以直接在图像上应用这个变换,因为在OpenCV中图像是NumPy ndarrays。为了使用这个函数,我们应该先定义一个变换矩阵m。输出的通道数将与变换矩阵m的行数相同。

AI333888的博客 1473

从扩散模型到视频生成:技术原理、环境搭建与MiniMax-H3实践

扩散模型作为生成式AI的核心技术,通过逐步去噪的过程,实现了从随机噪声到高质量数据样本的生成。其原理基于对数据分布的学习与迭代优化,在图像生成领域已取得显著成功。这一技术的核心价值在于能够合成高保真、多样化的内容,极大地推动了创意生成、媒体制作等领域的自动化进程。当我们将扩散模型从静态图像扩展到动态视频时,便进入了更具挑战性的多模态生成领域。视频生成不仅要求模型具备强大的空间建模能力,还需在时间维度上保持连贯性,这通常通过引入时间注意力机制和3D卷积层来实现。在实际工程中,搭建一个支持视频生成的环境需要综合

weixin_33708432的博客 507

从零实现DCGAN生成莫奈风格画作:原理、调参与艺术化后处理

生成对抗网络(GAN)是深度学习中模拟人类创造性思维的核心范式,其通过生成器与判别器的动态博弈,实现对复杂数据分布的隐式建模。DCGAN作为GAN的经典简化架构,以卷积结构、批归一化和稳定训练机制为特征,成为理解生成式AI原理的理想教学载体。它不依赖海量标注数据,而是从噪声中迭代演化出具备语义一致性的图像,在小样本艺术风格学习场景中展现出独特价值。本文聚焦Data Science工程实践视角,详解如何用仅200张莫奈真迹,在消费级GPU上完成数据清洗、模型构建、超参数调试(如batch size、label

weixin_30384217的博客 408

python模块opencv之图片操作(1)

大家一起学机器学习啦! 图片操作太多了,这里包括了 1.图片的读入(imread()) 2.获取图像大小(.shape) 3.创建随机图像 4.图像色彩的调节和输出水印。 import cv2 import numpy as np fn = "Imread.jpg" '''Img基本操作''' print("loadin %s ..." % fn) img1 = cv2.imread

SoHardToNamed的博客 494

Open-Sora与Sora本质差异:视频生成的黑盒服务vs研究基线

视频生成是AIGC领域关键前沿方向,其核心在于时空建模能力——即如何联合理解图像空间结构与时间动态演化。Sora代表工业级视频生成服务的顶峰,依赖封闭架构、私有数据与定制化工程系统,追求开箱即用的商业交付;而Open-Sora则立足开源复现与研究友好,通过模块化设计、分离时空建模和轻量验证机制,为算法研究员与高校学生提供可调试、可替换、可复现的技术基线。二者并非竞品,而是分别服务于产品落地与科研探索两大范式。本文深入对比其在模型架构、VAE隐空间设计、文本编码策略及实操训练路径上的根本分野,揭示视频生成从‘

weixin_30709061的博客 490

Python盲水印技术全方位解析:从原理到实战的图像版权保护方案

在数字化时代,图像版权保护面临严峻挑战,数字水印技术作为解决方案之一,通过在图像中嵌入不可见信息实现所有权认证。Blind-WaterMark库基于Python开发,采用离散小波变换(DWT)、离散余弦变换(DCT)和奇异值分解(SVD)等底层算法,构建了一套完整的盲水印解决方案。本文将系统剖析其技术原理、实现流程及高级应用,为开发者提供从基础集成到深度定制的全链路指南。 ## 技术原理解析:数

gitblog_01065的博客 396

OpenCV图像亮度和对比度调整

同时,在进行亮度和对比度调整前,需要进行一些基础的图像预处理操作,例如去除噪声、平滑图像等。对于一些情况下的图像,可能存在一些问题,例如,图像太暗或者图像的对比度很低。在第一个窗口中,我们显示了原始的输入图像,而在第二个窗口中,则展示了调整后的输出图像。因此,在进行亮度和对比度调整前,可能需要进行一些预处理操作,例如去除噪声、平滑图像等。本文将介绍如何使用Python和OpenCV库来调整图像的亮度和对比度,并且会涉及到图像预处理的基础知识。下面是完整的代码,其中包含了图像打开、预处理和亮度和对比度调整。

ByteNinja的博客 1530

Win10管理员权限的‘暗门’:从mmc.exe被阻止,聊聊UAC与自动提权那些事儿

本文深入解析Windows 10中UAC(用户账户控制)与自动提权机制,探讨mmc.exe被阻止的深层原因及解决方案。从UAC工作原理到自动提权机制,再到具体诊断与修复步骤,帮助用户理解并解决权限管理问题,同时平衡安全性与便利性。

weixin_30521161的博客 412

Stability AI生成模型实战指南:从SDXL到视频生成的全栈方案深度解析

Stability AI的generative-models项目是一个强大的开源生成式AI框架,集成了从图像生成到视频合成的完整解决方案。该项目提供了SDXL、SV3D、SV4D等前沿模型,支持文本到图像、图像到视频、视频到4D等多种生成任务,为开发者和研究人员提供了完整的AI生成工具链。 ## 核心概念:模块化架构与统一框架 ### 模块化设计哲学 简单来说,这个项目采用"配置驱动"的设计理

gitblog_00332的博客 731

Android Studio安装常见问题详解——Android Emulator Hypervisor Driver for AMD Processors installation failed.

目录一、问题描述二、解决方案2.1 开启CPU虚拟化2.2 禁用Hyper-V2.3 使用管理员命令行在驱动程序包中执行“silent_install.bat” 一、问题描述 新买的AMD轻薄本,在安装Android Studio时遇到问题: Android Emulator Hypervisor Driver for AMD Processors installation failed. 笔记本配置为: 二、解决方案 2.1 开启CPU虚拟化 设置虚拟化的步骤这里不进行详细介绍了。如果需要,可以自行百

Wendy的博客 4万+

李慕婉-仙逆-造相Z-Turbo AI编程助手:自动生成图像生成代码片段

本文介绍了如何在星图GPU平台上自动化部署李慕婉-仙逆-造相Z-Turbo镜像,将其转变为AI编程助手。该助手能根据自然语言指令,自动生成图像处理代码片段,例如快速生成用于批量添加电商商品折扣水印的Python脚本,极大提升了开发效率。

weixin_33256096的博客 262

UE4载具性能调优指南:从参数设置到实战优化

本文详细解析了UE4载具性能调优的关键技巧,从WheeledVehicle类构建到轮子参数、传动系统设置,再到物理属性与操控调校。通过实战案例分享,帮助开发者优化载具的速度、加速度等核心性能,提升游戏体验。特别适合需要精细调校载具物理特性的开发者参考。

weixin_29019241的博客 465

5分钟搞懂语义通信:如何用深度学习让AI理解你的真实意图?

本文深入解析了语义通信如何利用深度学习技术,实现从传统‘比特保真’到‘语义保真’的范式转移。通过介绍基于神经网络的端到端系统架构、编解码技术及实战案例,阐明AI如何理解并高效传递信息核心意图,为6G时代的人机交互奠定基础。

weixin_29191669的博客 256

Higgsfield Seedance2.0:本地部署4K AI视频生成工具全解析

AI视频生成技术通过深度学习模型将文本描述转化为动态视觉内容,其核心原理是基于扩散模型或生成对抗网络的序列生成。这项技术的价值在于大幅降低了视频制作门槛,使创作者能够快速生成个性化内容。在应用场景上,AI视频生成已广泛应用于短视频创作、产品宣传、教育培训等领域。随着4K超高清视频需求的增长,本地部署方案成为关注焦点,Higgsfield Seedance2.0作为开源工具,特别强调4K分辨率生成能力和提示词编辑功能。该工具支持动作序列控制,适合需要高质量视频创作的开发者,其部署流程涉及Python环境配置、

chutisun0039的博客 491

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9277

Seedance2.0与即梦AI5.0:本地化AI内容创作完整解决方案

AI内容生成技术通过深度学习模型实现从文本到多媒体内容的自动创作,其核心原理是基于扩散模型和生成对抗网络的多模态理解能力。在工程实践中,本地部署方案解决了在线服务的延迟和隐私问题,特别适合需要批量处理和定制化需求的内容创作场景。以提示词工程和视频生成为例,合理设置参数可以显著提升生成质量,而GPU加速和显存优化则直接影响处理效率。Seedance2.0集成了提示词生成和AI绘画功能,结合即梦AI5.0的视频编辑能力,为自媒体运营和数字艺术工作者提供了完整的创作工具链。这套方案支持从文字描述到高清视频的端到端

weixin_33811539的博客 353

sentaurus学习笔记(HFET_pGate_GaN仿真)(五)

`(sdedr:define-constant-profile`和`(sdedr:define-constant-profile-region`命令用于定义并应用一个恒定的活性硼掺杂浓度剖面`"ndop_GaN_gate_const"`到氮化镓栅极层上,其值为`NpGaN_gate`。- `"Oxide"`指定了这一层的材料名称(在这里代表氧化层),而`"nucleation"`是这一层在仿真中的标识名称。- `"GaN"`指定了这一层的材料名称,而`"GaN_gate"`是这一层在仿真中的标识名称。

qq_52640792的博客 936

如何提高电路的抗干扰能力

本内容详细介绍了电源传导干扰处理,包括滤波、Feedthrough电容器、磁环、磁珠、屏蔽的使用与选型,EMC电磁兼容测试项目简介与要求,单片机与电源抗干扰处理等。

让你爱上电路设计 8580

WildArtifactBench:评估图像生成模型处理复杂人工痕迹的能力

图像生成模型的评估正从传统的像素级相似度,转向对复杂、真实场景下语义理解与内容还原能力的综合考量。其核心原理在于,通过构建包含图形界面、文字水印、滤镜边框等“人工痕迹”的评测数据集,并利用大语言模型(LLM)进行自动化、语义化的评估,从而衡量模型对真实世界复杂视觉内容的理解与生成能力。这一技术价值在于,它能更准确地反映模型在实际应用中的鲁棒性,指导模型在数据收集、训练策略上进行针对性优化。其应用场景广泛,尤其适用于需要处理用户多样化、非标准化需求的图像生成产品。本文聚焦的 WildArtifactBench

aoe41606的博客 454

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Stable Diffusion XL与视频生成模型实战指南:高性能AI图像与视频生成解决方案

Stability AI的生成模型套件提供了从SDXL文本到图像生成到SV3D/SV4D视频合成的一站式解决方案,支持企业级AI内容创作与多模态生成应用。该框架采用模块化架构设计,支持分布式部署和高性能配置,能够满足从基础图像生成到复杂视频合成的多样化技术需求。 ## 技术背景与核心问题 在当前的AI生成领域,企业面临三大核心挑战:1)多模型协同部署复杂度高,2)视频生成中的时空一致性难以保证

gitblog_01029的博客 992

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

图像即数据:构建可调度的图生视频全链路系统

图像不仅是视觉载体,更是蕴含构图、色彩、动势与叙事线索的多维语义容器。理解其底层结构(如空间重心、色彩指纹、纹理熵值、主体动势)是实现可控视频生成的前提;基于这些参数建立可解析、可映射、可运算的语义模型,才能突破传统‘以图搜图’的像素匹配局限,支撑跨模态动态延展与节奏化装配。该思路兼具技术确定性与工程落地性,广泛适用于短视频复用、电商产品视频化、独立创作者内容增产等场景,核心价值在于将静态图像转化为可编程的视觉生产单元。

weixin_34406086的博客 203

壁纸不是装饰,而是数字生活的视觉基础设施

壁纸作为人机交互中最基础的视觉层,早已超越静态图片范畴,演变为融合设备适配、色彩管理、元数据标注与动态分发能力的数字视觉基础设施。其底层涉及图像分辨率适配逻辑、Lab色彩空间建模、响应式CDN分发协议及EXIF元数据标准等关键技术。在多端协同、深色模式普及与审美个性化需求驱动下,传统图库下载模式失效,取而代之的是API驱动、元数据可查、版权可溯、更新可持续的视觉资产工作流。本文聚焦壁纸系统的工程化重构,解析Unsplash API调用、Pexels结构化标签筛选、Wallhaven社区策展机制等真实可用方案

weixin_34161029的博客 293
上一篇: 密码学笔记4 对称密钥算法
下一篇: CentOS7 最小化安装完配置
AI星球
博客等级 码龄22年 1万+粉丝 1261原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

AI星球

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

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

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

打赏作者

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

抵扣说明:

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

余额充值