图像的频域处理实验作业

CH02-1_图像预处理 【代码】CH02-1_图像预处理。 阅读详情
# 在绘图中显示中文字体,而非乱码
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
import cv2
import matplotlib.pyplot as plt
import numpy as np
import math
import os
import pywt.data
plt.rcParams['axes.unicode_minus'] = False

1、导入一张图像,分别对其进行带通和带阻滤波,展示滤波前后图像,并简要叙述带通和带阻滤波对图像的影响。

# 第一题代码部分
def bandpass_filter(image, radius, w, n=1):
    fft = cv2.dft(np.float32(image), flags=cv2.DFT_COMPLEX_OUTPUT)
    dshift = np.fft.fftshift(fft)
    rows, cols = image.shape[:2]
    mid_row, mid_col = int(rows / 2), int(cols / 2)

    mask = np.zeros((rows, cols, 2), np.float32)
    for i in range(0, rows):
        for j in range(0, cols):
            d = math.sqrt(pow(i - mid_row, 2) + pow(j - mid_col, 2))
            if radius - w / 2 < d < radius + w / 2:
                mask[i, j, 0] = mask[i, j, 1] = 1
            else:
                mask[i, j, 0] = mask[i, j, 1] = 0

    fft_filtering = dshift * np.float32(mask)
    ishift = np.fft.ifftshift(fft_filtering)
    image_filtering = cv2.idft(ishift)
    image_filtering = cv2.magnitude(image_filtering[:, :, 0], image_filtering[:, :, 1])
    cv2.normalize(image_filtering, image_filtering, 0, 1, cv2.NORM_MINMAX)
    return image_filtering

def bandstop_filter(image, radius, w, n=1):
    fft = cv2.dft(np.float32(image), flags=cv2.DFT_COMPLEX_OUTPUT)
    dshift = np.fft.fftshift(fft)
    rows, cols = image.shape[:2]
    mid_row, mid_col = int(rows / 2), int(cols / 2)

    mask = np.zeros((rows, cols, 2), np.float32)
    for i in range(0, rows):
        for j in range(0, cols):
            d = math.sqrt(pow(i - mid_row, 2) + pow(j - mid_col, 2))
            if radius - w / 2 < d < radius + w / 2:
                mask[i, j, 0] = mask[i, j, 1] = 0
            else:
                mask[i, j, 0] = mask[i, j, 1] = 1

    fft_filtering = dshift * np.float32(mask)
    ishift = np.fft.ifftshift(fft_filtering)
    image_filtering = cv2.idft(ishift)
    image_filtering = cv2.magnitude(image_filtering[:, :, 0], image_filtering[:, :, 1])
    cv2.normalize(image_filtering, image_filtering, 0, 1, cv2.NORM_MINMAX)
    return image_filtering

image = cv2.imread(你的图片, cv2.IMREAD_GRAYSCALE)
image_bandpass_filtering5 = bandpass_filter(image, 30, 56, 1)
image_bandstop_filtering5 = bandstop_filter(image, 30, 35, 1)

img_list1=[image,image_bandpass_filtering5,image_bandstop_filtering5]
title_list1=['原始图像','带通图像','带阻图像']
for i in range(3):
    plt.subplot(2, 2, i+1)
    plt.imshow(img_list1[i], 'gray')
    plt.title(title_list1[i])
    plt.xticks([])
    plt.yticks([])
plt.show()

第一题文字部分:

一、带通滤波器(Band-pass Filter):允许一定频率范围内的成分通过,同时抑制其他频率成分,用于保留图像的某些细节,而去除其他不必要的信息。

对图像的影响:

1、增强细节:增强图像中的边缘和纹理,使图像看起来更清晰。

2、去除噪声:可以去除或减少高频成分噪声。

3、特征提取:可以用来提取图像中的特定特征。

二、带阻滤波器(Band-stop Filter):抑制一定频率范围内的成分,而允许其他频率成分通过,用于去除图像中的特定频率成分。

对图像的影响:

1、平滑图像:抑制高频成分,使图像看起来更平滑,减少细节和边缘的清晰度。

2、去除周期性噪声:可以有效地去除周期性的噪声,如电力线干扰。

3、保留低频信息:保留了图像的低频成分,如整体的光照变化和大面积的均匀颜色。

2、导入一幅图像,对其进行离散余弦变换,变换后分别保留三种不同数量的低频成分,观察其逆变换后的图像,并简要叙述离散余弦变换的原理和步骤。

# 第二题代码部分
from scipy.fftpack import dct, idct
image =cv2.imread(你的图片, cv2.IMREAD_GRAYSCALE)
dct_result = dct(dct(image.T, norm='ortho').T, norm='ortho')
num_low_freq = [5, 30, 80]
reconstructed_images = []

title_list = ["原始图像"]
img_list = [image]
for n in num_low_freq:
    dct_result_copy = dct_result.copy()
    dct_result_copy[n:, :] = 0
    dct_result_copy[:, n:] = 0
    
    idct_result = idct(idct(dct_result_copy.T, norm='ortho').T, norm='ortho')
    idct_result = np.uint8(idct_result)
    idct_result_copy=idct_result.copy()
    title_list.append("{}低频成分图像".format(n))
    img_list.append( idct_result_copy)

for i in range(4):
    plt.subplot(2, 2, i+1)
    plt.imshow(img_list[i], 'gray')
    plt.title(title_list[i])
    plt.xticks([])
    plt.yticks([])
plt.show()

第二题文字部分:

DCT 的原理:

离散余弦变换(Discrete Cosine Transform,DCT)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的)。

DCT除了具有一般的正交变换性质外,其变换阵的基向量很近似于Toeplitz矩阵的特征向量,后者体现了人类的语言、图像信号的相关特性。因此,在对语音、图像信号变换的确定的变换矩阵正交变换中,DCT变换被认为是一种准最佳变换。DCT除了实数变换、确定的变换矩阵、准最佳变换性能等特点外,二维DCT还是一种可分离的变换,可以用两次一维变换得到二维变换结果。

DCT的步骤:

分离:DCT 将输入数据(通常是图像)分解成不同的频率成分,每个成分代表图像中的特定模式,如颜色、纹理等。

压缩:DCT 倾向于将大部分能量集中在变换后的前几个系数中,这些系数对应于图像的低频成分。高频成分通常包含图像的细节信息,但对视觉影响较小。

系数量化:在图像压缩中,可以根据需要对这些系数进行量化,即减少系数的精度,以达到压缩数据的目的。

逆变换:在图像重建或解压时,可以使用逆离散余弦变换(Inverse Discrete Cosine Transform,IDCT)将变换后的系数转换回原始数据。

3、导入一幅图像,对其进行小波变换,观察小波变换后的高频子图和低频子图,并简要叙述小波变换的原理和步骤。

#第三题代码部分
image =cv2.imread(你的图片, cv2.IMREAD_GRAYSCALE)
coeffs2 = pywt.dwt2(image, 'haar')
cA, (cH, cV, cD) = coeffs2
pl = cA
ph1 =cH
ph2 =cV
ph3 =cD

title_list = ["图像", "低频子图", "水平高频子图","垂直高频子图","对角高频子图"]
img_list = [image, pl, ph1,ph2,ph3]
for i in range(5):
    plt.subplot(2, 3, i+1)
    plt.imshow(img_list[i], 'gray')
    plt.title(title_list[i])
    plt.xticks([])
    plt.yticks([])
plt.show()

第三题文字部分:

一、小波变换的原理:

傅里叶变换的基函数(即sin和cos)从负无穷一直延伸到正无穷,无论某一频率出现的信号是早还是晚,傅里叶变换都会一视同仁地进行变换,没有对信号区间进行区分。如果使用在某一个有限区间内的函数(称为母函数)作为基函数,使其在整个时间域上滑动(即平移),则可以逐段描述不同时间段内、该频率函数的占比。改变函数的频率(即尺度),产生一系列小波函数,在整个时间域上滑动,即可得到某一信号的小波函数分解。

小波变换将傅里叶变换的基函数改为一系列小波函数,从而能够得到信号的频率分量、及频率分量对应的时间信息。

二、小波变换的步骤:

1、选择小波基:小波变换使用特定的波形(小波基)来匹配信号的特征。小波基的选择取决于信号的特性和处理目标。

2、分解:信号被分解为不同尺度的近似(低频成分)和细节(高频成分)。近似成分代表了信号的平滑版本,而细节成分包含了信号的局部变化信息。

3、多级分解:小波变换可以进行多级分解,每次分解都会产生更精细的细节成分和更粗糙的近似成分。

数字图像处理matlab上机实验 (五) 前言:作为一名图像算法攻城狮,那是在2014年大三下学期,一本绿色版的《数字图像处理》(冈萨雷斯的英文版)出现在自己课桌前。偶然间打开的一扇意外之门,就这样结下了一段不解之缘,那些日子不断上网搜代码的自己,那个刚上机不到二十分钟就把作业提交的自己,早已随往日的岁月飘扬而去。而今希望重新回到基础,回炉再造,话不多说,开始上课! 一、实验目的 通过本实验使学生掌握使用MATLAB的二维傅里叶变换进行频域增强的方法。 二、实验原理 本实验是基于数字图像处理课程中的图像频域增强理论来设计的。 本实验的准备知识:第四 阅读详情

相关推荐

数字图像处理matlab上机实验 (四)

前言:作为一名图像算法攻城狮,那是在2014年大三下学期,一本绿色版的《数字图像处理》(冈萨雷斯的英文版)出现在自己课桌前。偶然间打开的一扇意外之门,就这样结下了一段不解之缘,那些日子不断上网搜代码的自己,那个刚上机不到二十分钟就把作业提交的自己,早已随往日的岁月飘扬而去。而今希望重新回到基础,回炉再造,话不多说,开始上课! 一、实验目的 通过本实验使学生掌握使用 MATLAB 进行二维傅里叶变换的方法,加深对二维傅里叶变换的理解和图像频谱的理解。 二、实验原理 本实验是基于数字图像处理课程中的二维傅里叶变

sinat_34897952的博客 5162

利用pywt库对信号进行滤波,保留中心频段信号

在处理复杂信号时,由于采样的频带较宽,频散现象较为严重,多频下波速的不同很容易对信号的判断造成干扰,甚至造成误判的结果,为避免这样的结果,可以通过小波变换的方式对信号进行分解,把信号分解为从高频到低频依次递减的频率分布。选择频散现象不明显或者信号易于区分的部分作为主分析信号,做之后的进一步处理。上图为进行三层分解的结果示意图。因此在对原始数据进行四层分解时,C中的数据应为:cA4 cD4 cD3 cD2 cD1,其中cA为信号的近似分量为低频,cD为信号的细节分量为高频。而L中的结果就是每个数据的长度。

weixin_43723578的博客 428

数字图像处理与傅里叶变换作业复现

在本章中,我们深入了解了数字图像处理的核心技术,包括图像滤波、增强、压缩和恢复。每项技术都有其适用的场景和方法。滤波技术用于去噪和边缘保留,增强技术用于改善图像视觉效果,压缩技术用于数据量减少,恢复技术则用于重建压缩后的图像。在下一章中,我们将深入到MATLAB代码层面,了解如何复现特定的图像处理问题,从而更深刻地理解理论与实践的结合。MATLAB,作为一种高级数学计算和可视化软件,拥有强大的图像处理能力,尤其在工程和科学领域中广受欢迎。

weixin_42351520的博客 985

给美女美颜——基于Python的数字图像增强处理

在空域增强方面,运用Sobel算子验证了一阶微分对边缘特征的强化效果,理解了梯度计算如何提升图像锐度与细节表现;通过直方图均衡化实践,直观体会到像素灰度重分布对医学图像对比度的改善机制,尤其在处理低对比X光片时,均衡化使骨骼纹理显著清晰。在频域处理中,傅里叶变换与低通滤波的实现让我认识到频域分离对图像平滑与噪声抑制的作用,频谱图对比揭示了高低频分量与图像特征的关联性。频域滤波中截止频率的选择直接影响细节保留程度;通过Sobel算子计算梯度幅值,与原图加权融合,突出边缘信息,增强图像轮廓,改善细节表现。

qianqianaao的博客 1171

PSpice 导入 LTspice 仿真实验 --(如何解决PSpice模型无法使用的错误)

参考了网上第三方器件导入LTspice的博客和资料,不论是哪个公司下载的SPICE模型导入LTspice的方法都类似。如果遇到导入报错的情况可以先看一下报错提示,如果通过语法修改实现功能的则说明可以进行仿真,当然性能可能与官方给的模型存在一点出入,但做一个基本的功能验证本人认为还是可以的,总比做出板子用不了或者完全不匹配的要好一些。

伊丽莎白的学习之路 8998

Multisim仿真入门:单相半波可控整流电路从搭建到波形分析(附避坑指南)

本文为电力电子技术初学者提供了一份详细的Multisim仿真指南,手把手教你从零搭建单相半波可控整流电路。通过对比纯电阻、阻感负载及加入续流二极管后的波形变化,直观理解晶闸管触发、电感续流等核心原理,并附有实用的参数设置与常见问题避坑指南,帮助你将抽象理论转化为可视化的工程实践。

weixin_29208077的博客 343

逆滤波和维纳滤波恢复降质图像

题目:用式子 H(u,v)=e−k∗(u2+v2)5/6 H(u,v)= e^{-k*(u^2+v^2)^ {5/6}} H(u,v)=e−k∗(u2+v2)5/6 对图像进行模糊处理,然后加白高斯噪声,得到降质图像。用逆滤波和维纳滤波恢复图像,对结果进行分析。 逆滤波的原理非常之简单,只需要在频域除去滤波器即可,就不用管噪声了。 首先套它猴子的,matlab太搞人心态了。因为matlab中数值是有上限和下限的,经过本人的探测,上限大概在e308 下限大概在e-324… 每次实验用的小女孩的大小

qq_44627776的博客 1672

【自适应调制】自适应调制解调通信链路误码率matlab仿真与分析

BPSK中的B是“Binary”的意思,也就是有两个变化状态,比如说相位上的“+90°(代表1)、-90°(代表0)”,一个状态代表的就是一个比特。QPSK的“Q”是“Quadrature”的意思,有四个变化状态,如相位上的“+45°(代表00)、-45°(代表11)、+135°(代表10)、-135°(代表01)”,那么一个状态就代表两个比特的信息,如图2所示。同理8PSK的一个状态代表三个比特。但是功率资源并不是无限的,基站总的发射功率是一定的,为了充分利用所有的功率,采用的就是AMC技术。

FPGA/MATLAB学习教程/源码/项目合作开发 1832

数字图像处理第五次作业——频域滤波器

学习冈萨雷斯《数字图像处理》第五次作业。本次作业主要通过频域滤波器对图像进行变换,并分析几种高通、低通滤波器各自的特点。

虚宇宸轩 6026

1、掌握 Microsoft Dynamics 365 Business Central 开发全解析

本文全面解析了Microsoft Dynamics 365 Business Central的开发全流程,涵盖开发环境搭建、AL语言扩展开发、定制解决方案实现、高级开发技术、文件与报表处理、打印功能、调试与性能优化、API使用、Azure和Power Platform集成、DevOps实践以及生成式AI应用。同时探讨了开发工具技巧、常见问题解决、开发流程优化、团队协作要点及未来技术趋势,帮助开发者系统掌握Business Central开发核心技能,提升企业级应用开发效率与质量。

food6的博客 110

面向非平行语料的语音转换技术综述

摘要语音转换是语音及人工智能领域的一项研究课题,其目标是在保持源语音内容不变的情况下改变语音的音色,使其听上去像是由另一个目标说话人说出的,同时还需保证语音的质量和自然度。面向非平行语料的语音转换技术是当下的热门研究内容,其使用非平行的多说话人语音数据集进行模型训练,能完成多对多以及任意对任意的语音转换。对近年来面向非平行语料的语音转换进行了全面的总结和分析。首先概述了早期面向平行语料的语音转换及其缺陷,然后对当下面向非平行语料的语音转换的各类实现方法进行介绍和对比分析,最后对语音转换技术进行了总结和展望。

qq_61890005的博客 829

【基于MATLAB的数字图像处理】大作业·综合图像处理平台

我们获得的图像难免会伴随着很多的噪声,有时会使图像质量下降;有时会干扰我们的视觉,使拍摄出的图像效果不满意;有时甚至会出现一些特殊情况,遮挡住人脸或重要物体。这时我们需要对获得的图像进行一些图像处理,以使我们的图像观感更好,图像质量更优质。 本平台致力于将多种图像处理功能集成于一体,方便用户直观快捷的对图像进行操作处理,快速地获得一幅较为优质的图像;另外,本平台亦可作为教育教学软件使用,教师可以直观的为学生展示各种图像操作的变换的效果,也可进一步延伸,展示一些偏向于应用和中级图像处理的图像操作。

qq_52785580的博客 1万+

RK3568平台开发系列讲解:内核启动流程

第 493 行的 ENTRY 指明了了 Linux 内核入口,入口为stext,stext 定义在文件arch/arm/kernel/head.S 中 , 因此要分析Linux 内核的启动流程,就得先从文件arch/arm/kernel/head.S 的 stext 处开始分析。_mmap_switched 定义在文件 arch/arm/kernel/head-common.S,__mmap_switched 最终会调用 start_kernel 函数。⑥、r2=atags 或者设备树(dtb)首地址。

内核笔记 217

数字图像处理之matlab大作业:自制图像处理小工具

matlab 数字图像处理小工具

1万+

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

【从零开始学习 UVM】1.2、UVM 概述 —— UVM Installation(UVM 安装)

努力,加油每一天鸭~ 1944

Microsemi Libero系列教程(一)——Libero开发环境介绍、下载、安装与注册

前言 相比与Xilinx和Altera在国内的市场,Microsemi的FPGA在国内应用很少很少,网上几乎没有详细的教程,刚开始使用时,遇到了各种问题,自己也走了不少弯路。本系列教程以Libero V11.8.2.4,SmartFusion系列A2F200M3F FPGA芯片为例,将详细介绍Libero SoC软件的基本使用,及使用过程中遇到一些问题的解决方法。 Libero 简介 关于Lib...

whik1194的博客 3万+

数字图像处理MATLAB大作业:基础版

基于MATLAB实现数字图像处理

qq_53384631的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数字图像处理作业:灰度图像的频域滤波器 灰度图像的离散余弦变换

实验二:数字图像频域增强实验 作业一:灰度图像的频域滤波器 问题1 对灰度图像进行DFT变换,在频域上分别使用理想的高通和低通滤波器进行滤波,显示滤波后的频域图像,以及IDFT变换后的空域图像,观察振铃现象。要求实验采用两种不同的截止频率。 DFT变换-傅里叶变换(高低通滤波) import numpy as np import cv2 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 使图形中的中文

ysh的博客 2605

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

实验二 数字图像的变换处理

1. 实现图像文件peppers.jpg的读取,获取并显示图像的平移后图像(分别包括:x轴平移60像素,y轴平移60像素,左上角平移(20,50)像素,右下角平移(20,50)像素) 2. 实现图像文件peppers.jpg的读取,获取并显示图像的几何变换后的图像(包括水平镜像、垂直镜像、缩小为原来的1/4、放大为原来4倍、转置、剪切[50:120,100:240])。 3. 实现图像文件peppers.jpg的读取,分别对其进行二维傅里叶变换(DFT),并显示DFT后的图像。请从系数分布、幅值情况、对应图

qianqianaao的博客 943

实验二B 图像的空域与频域滤波(源代码一站式复制粘贴)

2)读出一幅灰度图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截止频率自选),再做逆变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。频域增强是利用图像变换方法将原来的图像空间中的图像以某种形式转换到其他空间中,然后利用该空间的特有性质方便地进行图像处理,最后再转换回原来的图像空间中,从而得到处理后的图像。4)将图像的傅里叶变换置为其共轭后进行逆变换,比较新生成图像与原始图像的差异。3)将所得结果用逆变换得到增强的图像。3.掌握进行图像的空域滤波的方法。

m0_51456787的博客 1694

【基于MATLAB的数字图像处理】第四章·图像增强

图像增强是指采用一系列技术,对原图像进行处理、加工,使其更适合具体的应用要求,改善图像的视觉效果,将图像转换成一种更加适合于人和机器进行分析处理的形式。 基于MATLAB的数字图像处理的第四章·图像增强技术知识及代码讲解

qq_52785580的博客 1万+

图像处理作业分享:频域处理

该题程序: clear all img=imread("E:\BaiduNetdiskWorkspace\算法汇总\DIPUM2E_Original_Book_Images\DIPUM2E_Original_Book_Images\DIPUM2E_International_Ed_CH03_Images\Fig0313(a).tif"); %img=rgb2gray(I); %幅值图和相位谱 %进行傅立叶变换 f2=fft2(img); %傅里叶变换 f=fftshift(f2); ..

学术的尽头是分享,技术的尽头是开源 1782

数字图像处理作业3

巴特沃斯滤波器

m0_65604669的博客 879

matlab实验一 频域简单高通滤波设计,频域滤波器设计(数字图像处理实验报告).docx...

频域滤波器设计(数字图像处理实验报告)数字图像处理作业——频域滤波器设计摘要在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。本文利用matlab软件,采用频域滤波的方式,对图像进行低通和高通滤波处理。低通滤波是要保留图像中的低频分量而除去高频分量,由于图像中的边缘和噪声都对应图像傅里叶频谱中的高频部分,所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓;高通滤波是要保留图像中的高频分量...

weixin_39646412的博客 1071

【图像处理】频域中的傅里叶变换和滤波(Matlab代码实现)

傅里叶变换是一种将信号(包括图像)从时域转换到频域的数学工具。在图像处理中,傅里叶变换可以将图像表示为其频率分量的叠加。傅里叶变换将图像从空间域(像素值的分布)转换为频率域(不同频率的成分)。这使得我们能够分析图像中不同频率的特征,如纹理、边缘等。频域中的傅里叶变换和滤波是图像处理与分析中的重要工具,它们在信号处理、图像增强、去噪、特征提取等多个领域有着广泛的应用。

2201_75454341的博客 663

数字图像处理 - 实验作业三 - Python

文章目录第四章 频率域滤波1、实现图像的傅里叶变换,显示其幅度谱的图像(0 频在显示图像的中间位置)2、用理想低通滤波器在频率域实现低通滤波3、用理想高通滤波器在频率域实现低通滤波4、用巴特沃斯低通滤波器和高斯低通滤波器实现图像的低通滤波4.1 巴特沃斯低通滤波器4.2 高斯低通滤波器5、用巴特沃斯高通滤波器和高斯高通滤波器实现图像的高频增强5.1 巴特沃斯高通滤波器5.2 高斯高通滤波器 第四章...

沉默的溪 4032
上一篇: 图像的空域处理实验作业
下一篇: 图像形态学
zhanghongyi_cpp
博客等级 码龄4年 2458粉丝 413原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值