Python [plt 和 cv] 图片读取、显示和保存

cv2和plt读取显示图像问题——Python+Opencv学习系列 一、问题阐述 我们一般利用cv2.imread来读取彩色图像和灰度图像,并可利用cv2.imshow来显示图像;但在特殊场合下,我们为了方便对比区分,需采用matplotlib.pyplot来显示图像,就如下图所示。 本次遇到的问题是两种方法显示彩色和灰度图像的结果有差异,当利用cv2.imshow显示读取彩色图像时,会“偏黄”;当利用cv2.imshow显示读取的灰度图像时符合我们正常的灰度图像,但利用plt.show显示读取的灰度图像时更像是彩色的,代码和图像如... 阅读详情

1. 图片读取方式

读取图片,并设置图片大小

  1. keras 导入

    img = load_img(image_path, target_size=target_input) # 设置导入尺寸
    
    plt.imshow(img)
    
  2. opencv 导入

    img = cv2.imread(image_path)
    img = cv2.resize(img, target_input[:2])   # cv.resize 值只接受(h, w)
    

2. 绘图

2.1 图片显示

  1. opencv 绘制 (默认 gbr)

    cv2.imshow(windown, img)  # window 可以随意命名
    

    若不能正常显示:

    cv2.waitKey(0)  # 键盘绑定函数,等待按键
    cv2.destroyAllWindows() # 按下键盘中的按键,启动该程序销毁所有窗口
    
  2. plt 显示

    使用 img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) 可以先将opencv读取的bgr转化为plt可以读取的bgr格式

    plt.imshow()
    plt.show()
    

2.2 关闭坐标显示

plt.xticks([]) # 关闭x坐标显示
plt.yticks([]) # 关闭y坐标显示

3. 保存图片

保存在当前目录下(或者使用绝对地址)

plt.savefig('./result.jpg')

4. 实例

  • 矩阵边线
# Python program to explain cv2.rectangle() method 

# importing cv2 
import cv2 

# path 
path = r'C:\Users\Rajnish\Desktop\geeksforgeeks\geeks.png'

# Reading an image in default mode 
image = cv2.imread(path) 

# Window name in which image is displayed 
window_name = 'Image'

# Start coordinate, here (5, 5) 
# represents the top left corner of rectangle 
start_point = (5, 5) 

# Ending coordinate, here (220, 220) 
# represents the bottom right corner of rectangle 
end_point = (220, 220) 

# Blue color in BGR 
color = (255, 0, 0) 

# Line thickness of 2 px 
thickness = 2

# Using cv2.rectangle() method 
# Draw a rectangle with blue line borders of thickness of 2 px 
image = cv2.rectangle(image, start_point, end_point, color, thickness) 

# Displaying the image 
cv2.imshow(window_name, image) 

  • 实心矩阵
# Python program to explain cv2.rectangle() method 
	
# importing cv2 
import cv2 
	
# path 
path = r'C:\Users\Rajnish\Desktop\geeksforgeeks\geeks.png'
	
# Reading an image in grayscale mode 
image = cv2.imread(path, 0) 
	
# Window name in which image is displayed 
window_name = 'Image'

# Start coordinate, here (100, 50) 
# represents the top left corner of rectangle 
start_point = (100, 50) 

# Ending coordinate, here (125, 80) 
# represents the bottom right corner of rectangle 
end_point = (125, 80) 

# Black color in BGR 
color = (0, 0, 0) 

# Line thickness of -1 px 
# Thickness of -1 will fill the entire shape 
thickness = -1

# Using cv2.rectangle() method 
# Draw a rectangle of black color of thickness -1 px 
image = cv2.rectangle(image, start_point, end_point, color, thickness) 

# Displaying the image 
cv2.imshow(window_name, image) 

参考

PIL,cv2,plt读取和显示图像;组合多幅图像 PIL,cv2,plt读取和显示图像;组合多幅图像1.PIL2. plt3. cv24. 不同图像组合 1.PIL (1) 用image.show()和image.save('PIL1.jpg')直接显示和保存PIL格式的image (2) transforms.Compose.ToTensor()把PIL图像或者数组图像numpy.ndarry(WxHxC)从[0,255]转换到float型[0.0,1.0]的tensor; (3) transforms.Compose.Normalize(Tensor, 阅读详情

相关推荐

python 三种常用图像库opencv、matplotlib、PIL图片读取方式对比总结

一.opencv: cv2 'cv2' import cv2 import os # im1 = cv2.imread(r'C:\Users\admin\Desktop\Celeba\celeba/000001.jpg')#对 # im1 = cv2.imread(r'C:\Users\admin\Desktop\Celeba\celeba')#报错,要明确到图片名 im1 = cv...

是鲤鱼啊 4311

python画图plt函数学习

python中的绘图工具 :matplotli,专门用于画图。 一. 安装与导入 工具包安装:conda install matplotli 导入:import matplotlib.pyplot as plt 画图主要有:列表绘图;多图绘图;数组绘图 二. 列表绘图 1. 基础绘图:plt.plot;plt.show import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [1, 4, 9, 16] plt.plot(x, y) plt.show()

DLUT_yan的博客 3万+

【科研绘图】【数据拟合曲线】:附Origin详细画图流程

拟合曲线图

weixin_50236590的博客 4万+

python基础语法(二)——— plt的一些函数使用

matplotlib1、plt.plot(x,y)plt.plot(x,y,format_string,**kwargs) x轴数据,y轴数据,format_string控制曲线的格式字串 format_string 由颜色字符,风格字符,和标记字符import matplotlib.pyplot as pltplt.plot([1,2,3,6],[4,5,8,1],’g-s’) plt.show...

qiurisiyu的博客 26万+

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 310

CVE-2017-7921漏洞深度剖析:从身份验证绕过到实战复现与防御

身份验证是Web应用安全的核心防线,其逻辑缺陷可能导致严重的未授权访问。身份验证绕过漏洞的原理在于,应用程序对特定请求路径或API接口的访问控制策略存在疏漏,未能执行有效的会话或令牌校验。这类漏洞的技术价值在于,攻击者无需凭证即可直接访问受保护的后端资源,从而获取敏感信息或执行未授权操作,对系统机密性、完整性构成直接威胁。在物联网和安防监控领域,大量网络摄像头、录像机等设备暴露于公网,其Web管理界面便成为常见攻击面。本文聚焦于安防设备中一个经典的CVE-2017-7921身份验证绕过漏洞,通过剖析其技术原

WGH100817的博客 471

【Python】plt库详解和示例

plt 是 Python 中 Matplotlib 库的一个常用别名,它表示 pyplot,这是一个用于创建图形和图形的可视化表示的工具。下面是一些 plt 函数的详解和示例,以帮助大家理解和使用。

不定时分享,互相学习,共同进步 1万+

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2969

python plt 绘图详解(plt.版本)

python plt绘图详解

qq_30150579的博客 4万+

视觉Transformer实战 | 将卷积引入视觉Transformer(CvT)

CvT 是一种融合卷积神经网络与 Vision Transformer 优势的视觉模型,旨在解决 ViT 缺乏平移不变性和局部性等归纳偏置的问题。CvT 采用分层结构逐级降采样,使用卷积词元嵌入代替传统 patch 切分,引入卷积投影替代线性投影。这些设计使得 CvT 能够去除位置编码,在高分辨率输入下表现更优。本节深入解析 CvT 的核心原理,并提供完整的 PyTorch 代码实现,演示如何在实际数据集上训练和评估 CvT 模型。

盼小辉丶的博客 726

【思博伦】史上最详细Spirent TestCenter测试仪使用教程精讲(一)!图解超赞超详细!!!

3. 在弹出的界面中,找到菜单栏中的“Connect/Create”,选择下拉框中的“Connect to Physical/Visual Chassis”,在弹出的对话框中输入思博伦测试仪的IP地址:192.168.6.244,点击“OK”;说明:目前我们只需要使用到Raw Stream Block,不需要用到Bound Stream Block。说明:如果要使用100G模式,由于硬件限制,必须连续3个面板端口同时配置为100G使用。打开安装包,并按照提示按照即可。

风云说通信 6478

python中cv2、Image和plt的图片打开、显示和保存

def cv_show(image): cv2.namedWindow('image', 0) cv2.resizeWindow('image', 600, 600) cv2.cvtColor(image, cv2.COLOR_RGB2BGR) image = image.convert('RGB') # 将RGBA转换成RGB image = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2GRAY) # I

weixin_50727642的博客 1万+

【Autoware】Autoware.universe安装过程与问题记录

Autoware.universe安装过程与问题记录

DevFrank的博客 2740

python中图片读取和保存以及plt.imshow()与cv2.imshow()显示图像颜色错误解决方案

最近调试程序的时候,发现要保存的图片颜色与原图片有色差(显示图像变蓝),郁闷良久,终于发现问题,望诸君避坑。

qq_41931453的博客 1万+

LabVIEW实现HTTP通信

本节简要介绍HTTP通信的基础知识,并以工业物联网平台TLINK中云端设备的数据发布设计为例,阐述互联网环境下HTTP客户端应用程序设计的基本方法。重点讲解工业物联网平台TLINK中HTTP设备的创建、通信数据帧的构造与测试。

不脱发的程序猿 1545

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python图片保存_Python中读取,显示,保存图片的方法

一 opencvimportcv2 as cv#loadimg =cv.imread(imagepath)#shape=(height, width, channel)h,w,c =img.shape#showcv.imshow('window_title', img)#savecv.imwrite(savepath, img)二 matplotlibimport matplotlib.pyplo...

weixin_39759182的博客 855

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Python下openCV打开图片的几种方式/适应窗口大小

opencv3.4 for python3.7 图片读、显、存#适应窗口大小 方式一:plt.imshow( ) 代码块: from matplotlib import pyplot as plt def test1( ): img = cv2.imread('ljx.jpg',0) plt.imshow(img) #plt.xticks([]), pl...

方块♦的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

保存图片的坑:cv2.imread和Image.open,还有image.save和cv2.imwrite对图像处理的格式不一样

调了个小程序调了三天,也是怪自己基础知识不牢,写篇文章记录下。 cv2.imread(img)读进来的图用cv2.imwrite(path)保存。 但cv2.imread(img)读进来的图不能直接转化为RGBA格式,只能通过Image.open传入的图才可以直接转化问RGBA。Image.open读进来的图只能用image.save保存。 第一个原因是cv2函数和pil库的读入和保存函数不能混合使用,cv2.imread读入的是图片,而Image.open读进来的是数组。 还有如果你要保存没坐标刻度图片用

qq_46677535的博客 5924

【Python】读取、显示、保存图像时cv2和plt的差异

cv2和plt在读取,显示,保存图像时的差异

郝久武的博客 1093

(P4)Python plt显示和保存图像(cv2、Image)

Python显示图像

木槿qwer的博客 2万+

计算机视觉cv2入门之图像的读取,显示,与保存

本文主要介绍了opencv图像的读取与显示,后序还将分享更多相关图像处理技术,以及如何利用cv2进行图像特征提取和匹配。并且还会将所有内容合并到专栏中,免费订阅。通过本专栏的学习,读者将能够利用cv2库解决实际的图像处理问题,为计算机视觉项目打下坚实基础。

weixin_73953650的博客 3716

python读取、显示、保存图片的几种方法

目录读取图像使用opencv读取使用PIL包读取保存图片显示图片代码总结 读取图像 读取图像我一般采用的有两种方法,如果想要读成numpy数组格式就用opencv方式,想要读成Image对象格式就用PIL包读取。 使用opencv读取 如果是读取灰度图,需要指定颜色模式为cv2.IMREAD_GRAYSCALE,这样读取出的是一个二维数组,而不是彩色图像的三维数组。 如果读取彩色图像,则不需要指定读取模式,这样读取出的是一个三维数组(H, W, C),但通道的的顺序是BGR。 使用PIL包读取 使用PIL包

hjyp的博客 8049

cv2,PIL,plt,tensorflow方法图片显示及plt的的plt.colorbar()的使用需要注意

几种图像读取方式总结 import matplotlib.image as img :img.imread() import PIL.Image as Img :Img.open() import tensorflow as tf :tf.read_file() import cv2:cv2.imread() 需要注意:一、对于低版本的tf,需要将图片经过tf.Session()执行 二、cv2读取文件中不能有中文字符 三、cv2读取三通道和单通道的不同 四、cv2的取的图片文件使用cv.imshow

weixin_43794311的博客 1万+

python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题

python中plt.imshow与cv2.imshow显示颜色问题在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象。这是因为:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread...

weixin_39716043的博客 3731

Python中plt.plot图像保存有白边及颜色不正常

第一个问题,plt图像保存有白边 首先,plt图像保存有白边,设置savefig里的参数和plt.tight_layout都无法真正的去除,plt适合画图表,有坐标值的这种。 1.可以使用CV2来进行处理 im = cv2.imread('demo.jpg') cv2.imshow('image',im) cv2.imwrite('aa.jpg',img,[int(cv2.IMWRITE_JPEG...

OGLD 4256

使用Python调用opencv学习(-)打开图片,显示图片

使用Python调用opencv学习(-)打开图片,显示图片 第一步是读取图片是用cv2.imread 第一个参数是图片的路径可以是绝对路径也可以是相对路径。第二个参数代表读取图片的格式 cv2.IMREAD_COLOR 为读取的彩色图片 cv2.IMRAD_GRADYSCALE为读取灰度图片 cv2.imshow 该函数的作用是显示图片。 第一个参数为弹出窗口的名称 第二个参数为显示图片的名称 ...

weixin_43474255的博客 1万+
上一篇: 报错:QtGui 和 QtPrintSupport, One of the two will be used. Which one is undefined.
下一篇: 【全】各种颜色对应的 Hex code 和对应的 RGB 值
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值