计算机软件及应用]数字图像处理VC++编程实现课件

PPT
  • 阅读 98 次
  • 下载 0 次
  • 页数 69 页
  • 大小 1.444 MB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
计算机软件及应用]数字图像处理VC++编程实现课件
可在后台配置第一页与第二页中间广告代码
计算机软件及应用]数字图像处理VC++编程实现课件
可在后台配置第二页与第三页中间广告代码
计算机软件及应用]数字图像处理VC++编程实现课件
可在后台配置第三页与第四页中间广告代码
计算机软件及应用]数字图像处理VC++编程实现课件
计算机软件及应用]数字图像处理VC++编程实现课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 69
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】计算机软件及应用]数字图像处理VC++编程实现课件.ppt,共(69)页,1.444 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2514.html

以下为本文档部分文字说明:

数字图像处理VC++编程实现安秋南京农业大学工学院编程实现方法•VisualC++图像处理编程•MATLAB图像处理编程•基于开源库OpenCV的图像处理编程•基于其他库的图像处理编程图像处理的VC++编程•VC++编程环境简介•图像编程

基础–图像格式的理解–BMP文件格式及读写–程序范例微型图像处理系统既包含硬件设备,也需要一定的软件环境支持。目前,图像处理系统平台多为MicrosoftWindows或X-Windows,开发的主流工具为Microsoft公

司的VC++。这是因为VC++是一种具有高度综合性能的软件开发工具,用它开发出来的程序有着运行速度快、可移植能力强等优点。本书中实例也是在Windows平台下,用VC++6.0实现的。此外,各国的科学家和研究机构开发了不少专用的图像处理软件环境,下面仅对

主要的几种作一简单介绍。VC开发环境简介•VC编程需要的知识C/C++语言;对Windows操作系统的了解(底层编程);微软类库MFC(MicrosoftFoundationClass)•VisualC++是一个可视化集成开发环境•掌握‘

工程’的概念•菜单使用介绍、Debug/Release区别等等VC开发的两种方式(一)•SDK(softwaredevelopmentkit)方式又称WIN32API(应用程序接口)编程即直接调用32位Windows(WIN32)操作系统提供的接口函数进行编程。•

SDK编程(VC中)使用的语言是C语言。•适合底层编程和对速度要求较高的环境,比如游戏开发、驱动开发、数字图形等•看图像打开、高斯噪声绘制的例子VC开发的两种方式(二)•MFC方式又称类库编程,即程序主要不再直接

跟操作系统API打交道(在需要的时候也可以调用API),而是使用封装好的C++类库。•MFC编程的好处之一:可以使用MFC向导来生成程序框架,提高效率•在这堂课中后面讲的程序都是MFC程序C++语言是一种中级语言自然语言(高级语言)中级语言低级语言(机器语言)跳过去in

tm_nA=10;Intm_nB=10;Intm_nC=m_nB+m_nA;MOVAL,10MOVBL,10ADDAL,BLC++语言的优缺点优点:编译语言脱离语言环境运行速度快代码少缺点:编译过程复杂语言可读性差容易犯错纠

错困难C++语言是C语言的一个超集C语言C++语言VisualC++MFCC++是一种面向对象的程序语言CWinApp:程序对象CMainFrame:窗口对象Cdocument:文档对象Cview:视对象类的使用CWinApp:程序对象CMain

Frame:窗口对象CDocument:文档对象CView:视对象每一个对象的定义就是一个类,类是C++新派生的一个数据类型,比较抽象。通常情况下可以简单理解为分类。使用:CMainFramem_Fra

me;//创建一个类的实例,分配相应的内存。m_Frame.Create(NULL);//通过实例调用类中的变量、函数、行为等等。MFC类库简介MFC:微软开发的C++程序的类库,在类库内集成了Windows程序设计所经常使用到的类,如:窗口的管理

、控件的管理、文件的管理、视的管理等。同时对类进行了树状的管理,通过封装和继承实现了简单实用的目的,而且功能强大,在Windows环境下编程和使用VC++编程应该对MFC了解。指针及其使用指针是C语言中一个非常重要的数据类型,通过指针可以实现直接对内存的存取。指针的声明:int*m_n

Num;指针的赋值:m_nNum=&m_ngg;m_nNum(0002h)*m_nNum(20h)(32)数组的使用:m_nNum=m_nArr[0];*(m_nNum+3)==m_nArr[4];声明变量:intm

_ngg=32;intm_nArr[100];20h00h43h1eh0000h0001h0002h1234h1235hFffeeh堆和栈的概念堆和栈是计算机管理内存的两种方式:栈空间一般存储临时数据。堆空间一般存储较大的和生命期较长的数据。C语言中,

单个的临时变量都放在栈中。intm_nNum=32;charm_cChar=‘m’;大型的数组变量放在堆中:intm_nNum[100];BYTE*m_nNum=(BYTE*)newBYTE[2000];new和delete操作符new操作符是C++的保留字,用来在堆中开辟一个指定大小的内存空

间。BYTE*m_nData=(BYTE*)newBYTE[m_nWidth*m_nHeight];栈空间中的数据在函数调用结束,如果没有声明为全局变量,将被自动删除。堆空间的变量不会自动删除,需要程序员手工删除。delete[]m_nData;VC++6.0工作平台IDE的使

用菜单工具条提示栏视窗口编辑窗口输出窗口窗口的概念图示中是我们讲要讲到的程序的界面,它是Windows系统的一个标准的界面,这种窗口框架结构也是视窗系统的核心。1、系统菜单2、程序菜单3、工具条4、视空间5、提示条文档/视图的概

念•文档/视图结构是Windows窗口结构中的标准形式。•在单文档窗口程序中,生成一个单文档模板和窗口视图对应,这时视图是由窗口生成的。•在多文档界面中,窗口类只生成主框架,而子窗口和子视图有文档模板

生成。视的概念•视结构是窗口中的客户区,用户可以在视区中画文字、画图像等等任意的屏幕的写操作。•WindowsGUI对视结构做了优化,用户可以方便的调用MFC类库中的相关类完成复杂的任务。开始程序设计

1、声明一个文件操作类:CFileRW2、在文件类内完成对BMP文件的读写操作。3、在CDoc类中调用CFileRW类的实例完成运算工作,同时在Doc中响应菜单的消息命令。4、在CFileRW中创建存放文件数据的堆变量数组,并以指针的形式完成调用。5、在D

oc中实现对堆数组的用后删除。图像在计算机中的理解这是一张计算机桌面的图像:0,01024,7681024,00,768XY基本元素:图像空间的大小:1024*768个像素。每个点的坐标(x,y)。颜色分辨率:32位彩色图像。0000000000

0000000000000011111111RBGA像素三基色调色板在Windows操作系统内部默认存在着一个调色板,调色板的颜色是和显示卡的颜色能力相对应的,当前的真彩色卡支持3-4个字节一个点的彩色表,一般第四个字节用于透明显示通道。调色板中用8位的一个字节表示一种颜色

分量,R或者G、B。所有的可能的颜色的组合为2^24。这也是VGA显示卡能够显示的最多的颜色数。所以我们把具有24位颜色的图像,叫做真彩色图像。分辨率的概念图像的分辨率越高,图像的空间点阵数越多;图像的颜色分辨率越高,表示每

个像素点的字节数越多;图像的存储空间大小(字节):空间点阵数*每个像素点的颜色字节数。图像的矩阵格式0000000000000001111111110101010100010101000000010000000100000001111000010000000100000001000000010

1100101001110010001011100000001图像在二进制格式中的形式1位表示一个点,两种颜色组合,黑白图像。4位表示一个点,16种颜色组合,16种颜色索引图像8位表示一个点,256种颜色组合,256种颜色索引图像。16位,24位,32位。

0,01024PIXELS768PIXELS图像实际的存储空间大小:1024*768*24/8=2304K=2.25M(字节)图像的大小•有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R,G,B三个分量表示,因为每个分量有256个级别,要用8位即一个字节来表示,所以每个

象素需要用3个字节。整个图象要用200*200*3,约120k字节。这幅图中最多只有16种颜色,我们可以用一个表:表中的每一行记录一种颜色的R,G,B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜

色在表中的索引值。举个例子,如果表的第0行为255,0,0(红色),那么当某个象素为红色时,只需要标明0即可。再来计算一下:16种状态可以用4位表示,所以一个象素要用半个字节。整个图象要用200*200*0.5,约20k字节,再加上表占用的

字节为3*16=48字节。整个占用的字节数约为前面的1/6!图像文件中对上述特征的处理图像的永久保存是存储到图像文件中。由于图像具有各种不同的特征,所以在存储文件时应该予以细致的描述:图像大小、颜色分辨率的大小、是

否压缩、是否自己定义调色板等等。这些信息都包含在图像文件的文件头中。图像文件的格式类型标准的图像文件格式:图像文件头+图像的点阵数据。常用的图像文件格式:BMP\GIF\JPG\PCX等等。BMP位图文件类型颜色深度的不同,就产生不同种类的图像文件,在计算机中常使用如下类型的图像

文件:➢单色图像(黑白)➢灰度图像➢伪彩色图像(8位和16位位图)➢24位真彩色图像➢32位真彩色图像单色图像•单色图像中每个像素点仅占一位,其值只有0或1,0代表黑,1代表白或相反。灰度图像(1)文件带有图像颜色表,共有25

6项,每一表项由红、绿、蓝三色分量组成。fred(x,y)=fgreen(x,y)=fblue(x,y)(2)每个像素由8位组成,其值范围从0~255,像素值f(x,y)是图像颜色表的表项入口地址。125,153,158,157,127,70,103,120,12

9,144,144,150,150,147,150,160,133,154,158,100,116,120,97,74,54,74,118,146,148,150,145,157,155,163,95,112,

123,101,137,108,81,71,63,81,137,142,146,152,167,69,85,59,65,43,85,34,69,78,104,101,117,132,134,149,54,46,38,44,38,36,44,36,25,48,115

,113,114,124,135,152,58,30,44,35,28,69,144,147,57,60,93,106,119,124,131,144,伪彩色图像(1)图像颜色表中的红、绿、蓝颜色分量值不全相等。fred(x,y)≠fgreen(x,y)≠fbl

ue(x,y)(2)图像有256种颜色,像素值是图像颜色表的索引地址。BMP文件的标准格式BMP文件的标准格式:54个字节大小的文件头;(不包括调色板)。以字节为基本单位的图像数据。在VC++中有标准的格式定义,两个结构变量,可以直接使用。位图文件的组成结构名称符号

位图文件头(bitmap-fileheader)BITMAPFILEHEADERbmfh位图信息头(bitmap-informationheader)BITMAPINFOHEADERbmih彩色表(colorta

ble)RGBQUADaColors[]图象数据阵列字节BYTEaBitmapBits[]BMP文件格式摘要偏移量域的名称大小内容图象文件头0000h文件标识2bytes两字节的内容用来识别位图的类型:‘BM’:Windo

ws3.1x,95,NT,…‘BA’:OS/2BitmapArray‘CI’:OS/2ColorIcon‘CP’:OS/2ColorPointer‘IC’:OS/2Icon‘PT’:OS/2Pointer注:因为OS/2系统并没有被普及开,所以

在编程时,你只需判断第一个标识“BM”就行。0002hFileSize1dword用字节表示的整个文件的大小0006hReserved1dword保留,必须设置为0000AhBitmapDataOffset1dword从文件开始到位图数据开始之间的数据(bitmapdata)之间的偏移量图象信息头

001ChBitsPerPixel1word每个象素的位数1-单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。你可以自己定义这两种颜色)4-16色位图8-256色位图16-16bit高彩色位图24-24bit真彩色位图32-32bi

t增强型真彩色位图001EhCompression1dword压缩说明:0-不压缩(使用BI_RGB表示)1-RLE8-使用8位RLE压缩方式(用BI_RLE8表示)2-RLE4-使用4位RLE压缩方式(用BI_RLE4表示)3-Bitfields-位域存放方式(用BI_BI

TFIELDS表示)0022hBitmapDataSize1dword用字节数表示的位图数据的大小。该数必须是4的倍数0026hHResolution1dword用象素/米表示的水平分辨率002AhVResolution1d

word用象素/米表示的垂直分辨率002EhColors1dword位图使用的颜色数。如8-比特/象素表示为100h或者256.0032hImportantColors1dword指定重要的颜色数。当该域的值等于颜色数时(或者等于0时)

,表示所有颜色都一样重要调色板数据根据BMP版本的不同而不同PaletteN*4byte调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图象数据根据BMP版本及

调色板尺寸的不同而不同BitmapDataxxxbytes该域的大小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。单个像素的真彩色文件分析424D-→B

M3A000000-→文件长度00000000-》保留字节36000000---》数据区起始地址28000000--》本结构长度40个字节01000000--》位图的宽度,以像素为单位01000000--》位图的高度,以像素为单位0100---》目标设备的级别,必须为11

800--》每个像素所需的位数24位00000000---》位图压缩类型,必须是004000000---》位图的大小,以字节为单位00000000--》位图水平分辨率,每米像素数00000000---》位图垂直分辨率,每米像素数00000000

---》位图实际使用的颜色表中的颜色数00000000---》位图显示过程中重要的颜色数WinHex软件文件标识文件头信息头数据区文件长度保留字节数据区起始地址信息头结构大小位图压缩类型颜色表颜色数单个像素的256伪

彩色位图文件调色板256项数据256色位图文件调色板数据•调色板256项;•所占字节数:256*4=1024;•1024/16=64行;•总行数43h=4*16+3=67行;•文件头占3行;所以占64行。每行16字节,可以

存储4个表项,64*4=256个表项。程序中图像数据的存储和使用图像数据在图像文件中存储的方式:图像文件只能够以数据流的方式存取数据,所以图像数据是以连续的字节存放的。0010011100100111001001110010011100100111123

4102520491024*768文件和内存中01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010

1显示屏幕0,01024*768图像矩阵格式与流格式的对应点阵:宽度m_nWidth,高度m_nHeight横向的位值X,纵向的位置Y,f(x,y)是坐标X,Y处的颜色值。数据流:f(x,y)=g(y*m_nWidth+x);g(n)数据流中n位值的颜色值。BMP文件存储格式(BMPVC中的描述)

BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。位图结构如下所示:位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据VC6.0中用BITMAPFILEHEADER和BITMAPINFOHEADE

R两个结构变量来描述BMP文件的文件头。位图文件头(第一部分)•第一部分为位图文件头BITMAPFILEHEADER,是一个结构,其定义如下:这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整

数)typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件类型描述,必须为BMDWORDbfSize;//以字节为单位的图像文件大小。WORDbfReserved1;//保留为0WORDbfReserved2;//保留为0DW

ORDbfOffBits;//从这个结构末尾到图像数据开始的字节数。}BITMAPFILEHEADER,*PBITMAPFILEHEADER;位图信息头(第二部分)typedefstructtagBITMAPINFOHEADER{DWORDbiSize;/

/这个结构的字节数(大小)LONGbiWidth;//图像的宽度。LONGbiHeight;//图像的高度WORDbiPlanes;//目标设备的为平面数,指定为1。WORDbiBitCount;//每个像素点的颜色位数。(0,1,4,8,1

6,24,32)DWORDbiCompression;//图像是否压缩,压缩格式。DWORDbiSizeImage;//图像数据的大小(字节)LONGbiXPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)水平方向;LONGb

iYPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)垂直方向;DWORDbiClrUsed;//描述实际使用到的颜色数,0DWORDbiClrImportant;//显示时使用的颜色数,0;}BITMAPINFOHEADER,*PBITMAPINFOHEADER;这个

结构的长度是固定的,为40个字节(WORD为无符号16位整数,DWORD无符号32位整数,LONG为32位整数)biSizeImage字段•biSizeImage指定实际的位图数据占用的字节数,其实也可

以从以下的公式中计算出来:biSizeImage=biWidth‘*biHeight要注意的是:上述公式中的biWidth‘必须是4的整倍数(所以不是biWidth,而是biWidth‘,表示大于或等于bi

Width的,离4最近的整倍数。举个例子,如果biWidth=240,则biWidth‘=240;如果biWidth=241,biWidth‘=244)一定要注意:每行所占字节长度始终是4的倍数,或者每行所占位长度是32的倍数。如果不是,则需要补齐调色板/颜色表(第三部分)•调色板

实际上是一个四元数组,则有2的biBitCount次方个元素。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。•typedefstructtagRGBQUAD{BYTErgbBlue;//蓝色分量BYTErgbGreen;//绿色分量BYTErgbRe

d;//红色分量BYTErgbReserved;//保留值}RGBQUAD;注意:24位真彩色图中没有调色板数据!!位图信息-BITMAPINFO结构位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:structtagBITMAPINFO{BITMAPI

NFOHEADERbmiHeader;RGBQUADbmiColors[1];//颜色表}BITMAPINFO;位图数据结构数据域含义BITMAPFILEHEADERbfType字节“BM”bfSiz

e文件总字节数BfReserved10BfReserved10bfOffBit位图数据距文件头的偏移量BITMAPINFOHEADERbiSize本结构大小的字节数biWidth位图的宽度,单位为像素点biHeight位图的高度,单位为像素点biPlanes1biBi

tCount像素的位数(1,4,8,24)biCompression压缩方式(0表示不压缩)bisizeImage位图数据的字节数biXpelsPerMeter水平分辨率(像素点/米)biYpelsPerMeter垂直分辨率(

像素点/米)biClrUsed图像中使用的颜色数biClrImportant图像中重要的颜色数RGBQUADrgbBlue蓝色的比例rgbGreen绿色的比例rgbRed红色的比例rgbResered0实际的位图数据区(第四部分)•第四部分就是实际的图象数

据了。•对于用到调色板的位图,图象数据就是该像素颜在调色板中的索引值。•对于真彩色图,图象数据就是实际的R,G,B值。下面就2色,16色,256色位图和真彩色位图分别介绍。对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1

表示白),所以一个字节可以表示8个像素。对于16色位图,用4位可以表示一个像素的颜色,所以一个字节可以表示2个像素。对于256色位图,一个字节刚好可以表示1个像素。对于真彩色图,三个字节才能表示1个像素。•注意:BMP文件的数据从下到上,从左到右的。获得文件路径名打开位图文件读取BITMAPF

ILEHEADER结构读取BITMAPINFOHEADER结构得到位图大小,分配内存空间BMP格式?获得数据的起始位置,保存起始位置指针结束开始打开BMP文件的流程图对文件的读取•通过CFile类来完成对文件的读取和写入,CFil

e类是MFC类库中专门完成文件读取的类,该类内部封装类WindowsAPI流式文件存取函数。使用简单、易懂。数据的声明•类的声明和相应变量、函数的定义在头文件“.h”中完成,变量的引用和函数体在对应的“

.cpp”文件中。•类中的数据分为公用、保护和私有三种。公用数据用来被其他的函数和过程调用和修改,保护变量只可以调用不可以修改,而私有数据只有类内部的函数和行为可以调用和修改。这就是一种类的封装。公用数据和私有数据•public:intm_nTempPub;•pr

ivate:intm_nTempPri;•protected:intm_nTempPro;各结构体内存的分配为BITMAPFILEHEADER申请一块内存空间,用来保存图像文件的文件头的结构信息;BITMAPFILEH

EADER*pbmfile=newBYTE[sizeof(BITMAPFILEHEADER)];为BITMAPINFO申请一块内存空间,用来保存图像文件的图像结构信息;BITMAPINFO*pbmfile=newBYTE[sizeof(BITMAPINFO)];为

图像的点阵数据申请一块内存空间,用来保存图像点阵数据,当进行算法运算时,此数组中的数据用新的数据来替换。BYTE*=newBYTE[m_nWidth*m_nHeight];得到数据起始位置指针,并得到图象的宽、高等信息信息使用文件中颜色表创建调色

板调色板调入设备环境设定参数,显示位图恢复原调色板设定参数显示位图带有颜色表?结束开始图像显示的流程图显示图像数据图像数据的显示在视图的类中CView中进行,在视图的CPP文件中的OnDraw(CDC*pDC)函数中可以完成这一绘制任务。应用程序的创建中当创建到视的客户区时既是

调用改函数的默认格式完成对视区的绘制。我们只要将视区重新绘制一次即可完成绘制工作。调色板的基本应用•调色板的原理•调色板的创建与实现•显示函数调色板的原理•调色板就是在256色显示系统中,将图像中出现的256种颜色组成颜色表,对这些颜色按8位,即0至255进行编号,

每一编号代表其中的一种颜色,在这种颜色中颜色编号叫做颜色的索引号。调色板的创建与实现•在调色板系统中,每一幅图像都有自己的调色板,显示时必须将自己的调色板载入系统调色板中,实现调色板。显示函数•在VisualC++环境中用于显示的主要有BitBl

t函数、StretchBlt函数和StretchDIBits函数。•BitBlt函数和StretchBlt函数属于CDC类,而StretchDIBits函数为API函数。BitBlt()函数•该函数的结构如下:BOOLBitBlt(intx,inty,intnWi

dth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwrop);参数说明:x:指定绘制目标矩形左上角的逻辑X轴位置。y:指定绘制目标矩形左上角的逻辑Y轴位置。nWidth:指定绘制

目标矩形和源位图的宽度(按逻辑单位)。nHeight:指定绘制目标矩形和源位图的高度(按逻辑单位)。pSrcDC:设备上下文的指针。xSrc,ySrc:指定源位图左上角的逻辑X轴、Y轴位置。dwrop:

指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。当要将位图的像素从内存显示环境复制到显示器(或打印机)设备环境中,一般会用到这个函数。StretchBlt()函数该函数的结构如下:BOOLStretchBlt(intx,in

ty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,intnSrcWidth,intnSrcHeight,DWORDdwrop);参数说明:x:指定绘制目标矩形左上角的逻辑X轴位置。y:指定绘制目标矩形左上角的逻辑Y轴位置。nWidth:指定绘

制目标矩形的宽度(按逻辑单位)。nHeight:指定绘制目标矩形的高度(按逻辑单位)。pSrcDC:设备上下文的指针xSrc,ySrc:指定源位图左上角的坐标(按逻辑单位)。nSrcWidth,nSrcHeight:指定复制源位图的宽度和高度(按逻辑单位)。dwr

op:指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。处理图像数据在Doc中通过两个函数afx_msgvoidOnSobel();和BOOLCImageProcessingDoc::Template(BYTE

*lpDIBBits,LONGlWidth,LONGlHeight,intiTempH,intiTempW,intiTempMX,intiTempMY,FLOAT*fpArray,FLOATfCoef);来完成,具体的函数结构和源代码在例程中。程序范例•

具体编程讲解。讨论与答疑

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?