版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字图像处理VC++编程实现安秋南京农业大学工学院数字图像处理VC++编程实现安秋南京农业大学工学院1编程实现方法VisualC++图像处理编程MATLAB图像处理编程基于开源库OpenCV的图像处理编程基于其他库的图像处理编程编程实现方法VisualC++图像处理编程2图像处理的VC++编程VC++编程环境简介图像编程基础图像格式的理解BMP文件格式及读写程序范例图像处理的VC++编程VC++编程环境简介3 微型图像处理系统既包含硬件设备,也需要一定的软件环境支持。目前,图像处理系统平台多为MicrosoftWindows或X-Windows,开发的主流工具为Microsoft公司的VC++。这是因为VC++是一种具有高度综合性能的软件开发工具,用它开发出来的程序有着运行速度快、可移植能力强等优点。本书中实例也是在Windows平台下,用VC++6.0实现的。此外,各国的科学家和研究机构开发了不少专用的图像处理软件环境,下面仅对主要的几种作一简单介绍。 微型图像处理系统既包含硬件设备,也需要一定的软件环境支持。4VC开发环境简介VC编程需要的知识
C/C++语言;
对Windows操作系统的了解(底层编程);
微软类库MFC(MicrosoftFoundationClass)VisualC++是一个可视化集成开发环境掌握‘工程’的概念菜单使用介绍、Debug/Release区别等等VC开发环境简介VC编程需要的知识
C/C++语言;
对Wi5VC开发的两种方式(一)SDK(softwaredevelopmentkit)方式
又称WIN32API(应用程序接口)编程
即直接调用32位Windows(WIN32)操作系统提供的接口函数进行编程。SDK编程(VC中)使用的语言是C语言。适合底层编程和对速度要求较高的环境,比如游戏开发、驱动开发、数字图形等看图像打开、高斯噪声绘制的例子VC开发的两种方式(一)SDK(softwaredevel6VC开发的两种方式(二)MFC方式
又称类库编程,即程序主要不再直接跟操作系统API打交道(在需要的时候也可以调用API),而是使用封装好的C++类库。MFC编程的好处之一:可以使用MFC向导来生成程序框架,提高效率在这堂课中后面讲的程序都是MFC程序VC开发的两种方式(二)MFC方式
又称类库编程,即程序主要7C++语言是一种中级语言自然语言(高级语言)中级语言低级语言(机器语言)跳过去intm_nA=10;Intm_nB=10;Intm_nC=m_nB+m_nA;MOVAL,10MOVBL,10ADDAL,BLC++语言是一种中级语言自然语言中级语言低级语言跳过去int8C++语言的优缺点优点:编译语言脱离语言环境运行速度快代码少缺点:编译过程复杂语言可读性差容易犯错纠错困难C++语言的优缺点优点:编译语言缺点:编译过程复杂9C++语言是C语言的一个超集C语言C++语言VisualC++MFCC++语言是C语言的一个超集C语言C++语言VisualC+10C++是一种面向对象的程序语言CWinApp:程序对象CMainFrame:窗口对象Cdocument:文档对象Cview:视对象C++是一种面向对象的程序语言CWinApp:程序对象CMa11类的使用CWinApp:程序对象CMainFrame:窗口对象CDocument:文档对象CView:视对象每一个对象的定义就是一个类,类是C++新派生的一个数据类型,比较抽象。通常情况下可以简单理解为分类。使用:
CMainFramem_Frame;//创建一个类的实例,分配相应的内存。m_Frame.Create(NULL);//通过实例调用类中的变量、函数、行为等等。类的使用CWinApp:程序对象CMainFrame:窗口对12MFC类库简介MFC:微软开发的C++程序的类库,在类库内集成了Windows程序设计所经常使用到的类,如:窗口的管理、控件的管理、文件的管理、视的管理等。同时对类进行了树状的管理,通过封装和继承实现了简单实用的目的,而且功能强大,在Windows环境下编程和使用VC++编程应该对MFC了解。MFC类库简介MFC:微软开发的C++程序的类库,在类库内集13指针及其使用指针是C语言中一个非常重要的数据类型,通过指针可以实现直接对内存的存取。指针的声明:int*m_nNum;指针的赋值: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语言中一个非常重要的数据类型,指针的声明14堆和栈的概念堆和栈是计算机管理内存的两种方式:栈空间一般存储临时数据。堆空间一般存储较大的和生命期较长的数据。C语言中,单个的临时变量都放在栈中。intm_nNum=32;charm_cChar=‘m’;大型的数组变量放在堆中:intm_nNum[100];BYTE*m_nNum=(BYTE*)newBYTE[2000];堆和栈的概念堆和栈是计算机管理内存的两种方式:栈空间一般存储15new和delete操作符new操作符是C++的保留字,用来在堆中开辟一个指定大小的内存空间。BYTE*m_nData=(BYTE*)newBYTE[m_nWidth*m_nHeight];栈空间中的数据在函数调用结束,如果没有声明为全局变量,将被自动删除。堆空间的变量不会自动删除,需要程序员手工删除。delete[]m_nData;new和delete操作符new操作符是C++的保留字,用16VC++6.0工作平台VC++6.0工作平台17IDE的使用菜单工具条提示栏视窗口编辑窗口输出窗口IDE的使用菜单18窗口的概念图示中是我们讲要讲到的程序的界面,它是Windows系统的一个标准的界面,这种窗口框架结构也是视窗系统的核心。1、系统菜单2、程序菜单3、工具条4、视空间5、提示条窗口的概念图示中是我们讲要讲到的程序的界面,它是Window19文档/视图的概念文档/视图结构是Windows窗口结构中的标准形式。在单文档窗口程序中,生成一个单文档模板和窗口视图对应,这时视图是由窗口生成的。在多文档界面中,窗口类只生成主框架,而子窗口和子视图有文档模板生成。文档/视图的概念文档/视图结构是Windows窗口结构中的标20视的概念视结构是窗口中的客户区,用户可以在视区中画文字、画图像等等任意的屏幕的写操作。WindowsGUI对视结构做了优化,用户可以方便的调用MFC类库中的相关类完成复杂的任务。视的概念视结构是窗口中的客户区,用户可以在视区中画文字、画图21开始程序设计1、声明一个文件操作类:CFileRW2、在文件类内完成对BMP文件的读写操作。3、在CDoc类中调用CFileRW类的实例完成运算工作,同时在Doc中响应菜单的消息命令。4、在CFileRW中创建存放文件数据的堆变量数组,并以指针的形式完成调用。5、在Doc中实现对堆数组的用后删除。开始程序设计1、声明一个文件操作类:CFileRW22计算机软件及应用]数字图像处理VC++编程实现课件23图像在计算机中的理解这是一张计算机桌面的图像:0,01024,7681024,00,768XY基本元素:图像空间的大小:1024*768个像素。每个点的坐标(x,y)。颜色分辨率:32位彩色图像。00000000000000000000000011111111RBGA像素图像在计算机中的理解这是一张计算机桌面的图像:0,0102424三基色三基色25调色板在Windows操作系统内部默认存在着一个调色板,调色板的颜色是和显示卡的颜色能力相对应的,当前的真彩色卡支持3-4个字节一个点的彩色表,一般第四个字节用于透明显示通道。调色板中用8位的一个字节表示一种颜色分量,R或者G、B。所有的可能的颜色的组合为2^24。这也是VGA显示卡能够显示的最多的颜色数。所以我们把具有24位颜色的图像,叫做真彩色图像。调色板在Windows操作系统内部默认存在着一个调色板,调色26分辨率的概念图像的分辨率越高,图像的空间点阵数越多;图像的颜色分辨率越高,表示每个像素点的字节数越多;图像的存储空间大小(字节):空间点阵数*每个像素点的颜色字节数。分辨率的概念图像的分辨率越高,图像的空间点阵数越多;27图像的矩阵格式00000000000000011111111101010101000101010000000100000001000000011110000100000001000000010000000101100101001110010001011100000001图像在二进制格式中的形式1位表示一个点,两种颜色组合,黑白图像。4位表示一个点,16种颜色组合,16种颜色索引图像8位表示一个点,256种颜色组合,256种颜色索引图像。16位,24位,32位。0,01024PIXELS768PIXELS图像实际的存储空间大小:1024*768*24/8=2304K=2.25M(字节)图像的矩阵格式0000000000000001111111128图像的大小有一个长宽各为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!图像的大小有一个长宽各为200个象素,颜色数为16色的彩色图29图像文件中对上述特征的处理图像的永久保存是存储到图像文件中。由于图像具有各种不同的特征,所以在存储文件时应该予以细致的描述:图像大小、颜色分辨率的大小、是否压缩、是否自己定义调色板等等。这些信息都包含在图像文件的文件头中。图像文件中对上述特征的处理图像的永久保存是存储到图像文件中。30图像文件的格式类型标准的图像文件格式:图像文件头+图像的点阵数据。常用的图像文件格式:BMP\GIF\JPG\PCX等等。图像文件的格式类型标准的图像文件格式:图像文件头+图像的点阵31BMP位图文件类型 颜色深度的不同,就产生不同种类的图像文件,在计算机中常使用如下类型的图像文件:
单色图像(黑白)
灰度图像
伪彩色图像(8位和16位位图)
24位真彩色图像32位真彩色图像BMP位图文件类型 颜色深度的不同,就产生不同种类的图像文32单色图像单色图像中每个像素点仅占一位,其值只有0或1,0代表黑,1代表白或相反。单色图像单色图像中每个像素点仅占一位,其值只有0或1,0代表33灰度图像(1)文件带有图像颜色表,共有256项,每一表项由红、绿、蓝三色分量组成。fred(x,y)=fgreen(x,y)=fblue(x,y)(2)每个像素由8位组成,其值范围从0~255,像素值f(x,y)是图像颜色表的表项入口地址。125,153,158,157,127,70,103,120,129,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)文件带有图像颜色表,共有256项,每一表项34伪彩色图像(1)图像颜色表中的红、绿、蓝颜色分量值不全相等。fred(x,y)≠fgreen(x,y)≠fblue(x,y)(2)图像有256种颜色,像素值是图像颜色表的索引地址。伪彩色图像(1)图像颜色表中的红、绿、蓝颜色分量值不全相等35BMP文件的标准格式BMP文件的标准格式:54个字节大小的文件头;(不包括调色板)。以字节为基本单位的图像数据。在VC++中有标准的格式定义,两个结构变量,可以直接使用。位图文件的组成结构名称符号位图文件头(bitmap-fileheader)BITMAPFILEHEADERbmfh位图信息头(bitmap-informationheader)BITMAPINFOHEADERbmih彩色表(colortable)RGBQUADaColors[]图象数据阵列字节BYTEaBitmapBits[]BMP文件的标准格式BMP文件的标准格式:位图文件的组成结36BMP文件格式摘要
偏移量
域的名称
大小
内容
图象文件头
0000h文件标识2bytes两字节的内容用来识别位图的类型:‘BM’:Windows3.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)之间的偏移量BMP文件格式摘要偏移量域的名称大小内容00037图象信息头001ChBitsPerPixel1word每个象素的位数1-单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。你可以自己定义这两种颜色)
4-16色位图
8-256色位图
16-16bit高彩色位图
24-24bit真彩色位图
32-32bit增强型真彩色位图001EhCompression1dword压缩说明:0-不压缩(使用BI_RGB表示)
1-RLE8-使用8位RLE压缩方式(用BI_RLE8表示)
2-RLE4-使用4位RLE压缩方式(用BI_RLE4表示)
3-Bitfields-位域存放方式(用BI_BITFIELDS表示)0022hBitmapDataSize1dword用字节数表示的位图数据的大小。该数必须是4的倍数0026hHResolution1dword用象素/米表示的水平分辨率002AhVResolution1dword用象素/米表示的垂直分辨率002EhColors1dword位图使用的颜色数。如8-比特/象素表示为100h或者256.0032hImportantColors1dword指定重要的颜色数。当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要图001ChBitsPerPixel1word38调色板数据根据BMP版本的不同而不同PaletteN*4byte调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图象数据根据BMP版本及调色板尺寸的不同而不同BitmapDataxxxbytes该域的大小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。调色板数据根据BMP版本的不同而不同PaletteN*439单个像素的真彩色文件分析424D-BM3A000000-文件长度00000000-》保留字节36000000---》数据区起始地址28000000--》本结构长度40个字节01000000--》位图的宽度,以像素为单位01000000--》位图的高度,以像素为单位0100---》目标设备的级别,必须为11800--》每个像素所需的位数24位00000000---》位图压缩类型,必须是004000000---》位图的大小,以字节为单位00000000--》位图水平分辨率,每米像素数00000000---》位图垂直分辨率,每米像素数00000000---》位图实际使用的颜色表中的颜色数00000000---》位图显示过程中重要的颜色数WinHex软件文件标识文件头信息头数据区文件长度保留字节数据区起始地址信息头结构大小位图压缩类型颜色表颜色数单个像素的真彩色文件分析424D-BM28000040单个像素的256伪彩色位图文件调色板256项单个像素的256伪彩色位图文件调色板256项41数据数据42256色位图文件调色板数据调色板256项;所占字节数:256*4=1024;1024/16=64行;总行数43h=4*16+3=67行;文件头占3行;所以占64行。每行16字节,可以存储4个表项,64*4=256个表项。256色位图文件调色板数据调色板256项;43程序中图像数据的存储和使用图像数据在图像文件中存储的方式:图像文件只能够以数据流的方式存取数据,所以图像数据是以连续的字节存放的。00100111001001110010011100100111001001111234102520491024*768文件和内存中010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101显示屏幕0,01024*768程序中图像数据的存储和使用图像数据在图像文件中存储的方式:044图像矩阵格式与流格式的对应点阵:宽度m_nWidth,高度m_nHeight横向的位值X,纵向的位置Y,f(x,y)是坐标X,Y处的颜色值。数据流:f(x,y)=g(y*m_nWidth+x);g(n)数据流中n位值的颜色值。图像矩阵格式与流格式的对应点阵:宽度m_nWidth,高度m45BMP文件存储格式
(BMPVC中的描述) BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。位图结构如下所示:位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据VC6.0中用BITMAPFILEHEADER和BITMAPINFOHEADER两个结构变量来描述BMP文件的文件头。BMP文件存储格式
(BMPVC中的描述) BMP文件由文46位图文件头(第一部分)第一部分为位图文件头BITMAPFILEHEADER,是一个结构,其定义如下: 这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整数)typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件类型描述,必须为BMDWORDbfSize;//以字节为单位的图像文件大小。WORDbfReserved1;//保留为0WORDbfReserved2;//保留为0DWORDbfOffBits;//从这个结构末尾到图像数据开始的字节数。}BITMAPFILEHEADER,*PBITMAPFILEHEADER;位图文件头(第一部分)第一部分为位图文件头BITMAPFIL47位图信息头(第二部分)typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//这个结构的字节数(大小)LONGbiWidth;//图像的宽度。LONGbiHeight;//图像的高度WORDbiPlanes;//目标设备的为平面数,指定为1。WORDbiBitCount;//每个像素点的颜色位数。(0,1,4,8,16,24,32)DWORDbiCompression;//图像是否压缩,压缩格式。DWORDbiSizeImage;//图像数据的大小(字节)LONGbiXPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)水平方向;LONGbiYPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)垂直方向;DWORDbiClrUsed;//描述实际使用到的颜色数,0DWORDbiClrImportant;//显示时使用的颜色数,0;}BITMAPINFOHEADER,*PBITMAPINFOHEADER;这个结构的长度是固定的,为40个字节(WORD为无符号16位整数,DWORD无符号32位整数,LONG为32位整数)位图信息头(第二部分)typedefstructtagB48biSizeImage字段biSizeImage 指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来: biSizeImage=biWidth‘*biHeight 要注意的是:上述公式中的biWidth‘必须是4的整倍数(所以不是biWidth,而是biWidth‘,表示大于或等于biWidth的,离4最近的整倍数。举个例子,如果biWidth=240,则biWidth‘=240;如果biWidth=241,biWidth‘=244)
一定要注意:每行所占字节长度始终是4的倍数,或者每行所占位长度是32的倍数。如果不是,则需要补齐
biSizeImage字段biSizeImage49调色板/颜色表(第三部分)调色板实际上是一个四元数组,则有2的biBitCount次方个元素。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。typedefstructtagRGBQUAD{ BYTE rgbBlue; //蓝色分量 BYTE rgbGreen; //绿色分量 BYTE rgbRed; //红色分量 BYTE rgbReserved;//保留值 } RGBQUAD;
注意:24位真彩色图中没有调色板数据!!调色板/颜色表(第三部分)调色板实际上是一个四元数组,则有250位图信息-BITMAPINFO结构 位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:structtagBITMAPINFO{
BITMAPINFOHEADERbmiHeader;RGBQUADbmiColors[1];//颜色表}BITMAPINFO;位图信息-BITMAPINFO结构 位图信息头和颜色表组成51位图数据
结构数据域含义BITMAPFILEHEADERbfType字节“BM”bfSize文件总字节数BfReserved10BfReserved10bfOffBit位图数据距文件头的偏移量BITMAPINFOHEADERbiSize本结构大小的字节数biWidth位图的宽度,单位为像素点biHeight位图的高度,单位为像素点biPlanes1biBitCount像素的位数(1,4,8,24)biCompression压缩方式(0表示不压缩)bisizeImage位图数据的字节数biXpelsPerMeter水平分辨率(像素点/米)biYpelsPerMeter垂直分辨率(像素点/米)biClrUsed图像中使用的颜色数biClrImportant图像中重要的颜色数RGBQUADrgbBlue蓝色的比例rgbGreen绿色的比例rgbRed红色的比例rgbReserved0位图数据
结构数据域含义BITMAPFILEHEAD52实际的位图数据区(第四部分)第四部分就是实际的图象数据了。对于用到调色板的位图,图象数据就是该像素颜在调色板中的索引值。对于真彩色图,图象数据就是实际的R,G,B值。下面就2色,16色,256色位图和真彩色位图分别介绍。 对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个像素。 对于16色位图,用4位可以表示一个像素的颜色,所以一个字节可以表示2个像素。 对于256色位图,一个字节刚好可以表示1个像素。 对于真彩色图,三个字节才能表示1个像素。注意:BMP文件的数据从下到上,从左到右的。实际的位图数据区(第四部分)第四部分就是实际的图象数据了。53获得文件路径名打开位图文件读取BITMAPFILEHEADER结构读取BITMAPINFOHEADER结构得到位图大小,分配内存空间BMP格式?获得数据的起始位置,保存起始位置指针结束开始打开BMP文件的流程图获得文件路径名打开位图文件读取BITMAPFILEHEADE54对文件的读取通过CFile类来完成对文件的读取和写入,CFile类是MFC类库中专门完成文件读取的类,该类内部封装类WindowsAPI流式文件存取函数。使用简单、易懂。对文件的读取通过CFile类来完成对文件的读取和写入,CFi55数据的声明类的声明和相应变量、函数的定义在头文件“.h”中完成,变量的引用和函数体在对应的“.cpp”文件中。类中的数据分为公用、保护和私有三种。公用数据用来被其他的函数和过程调用和修改,保护变量只可以调用不可以修改,而私有数据只有类内部的函数和行为可以调用和修改。这就是一种类的封装。数据的声明类的声明和相应变量、函数的定义在头文件“.h”中完56公用数据和私有数据public:intm_nTempPub;private:intm_nTempPri;protected:intm_nTempPro;公用数据和私有数据public:57各结构体内存的分配为BITMAPFILEHEADER申请一块内存空间,用来保存图像文件的文件头的结构信息;BITMAPFILEHEADER*pbmfile=newBYTE[sizeof(BITMAPFILEHEADER)];为BITMAPINFO申请一块内存空间,用来保存图像文件的图像结构信息;BITMAPINFO*pbmfile=newBYTE[sizeof(BITMAPINFO)];为图像的点阵数据申请一块内存空间,用来保存图像点阵数据,当进行算法运算时,此数组中的数据用新的数据来替换。BYTE*=newBYTE[m_nWidth*m_nHeight];各结构体内存的分配为BITMAPFILEHEADER申请一块58得到数据起始位置指针,并得到图象的宽、高等信息信息使用文件中颜色表创建调色板调色板调入设备环境设定参数,显示位图恢复原调色板设定参数显示位图带有颜色表?结束开始图像显示的流程图得到数据起始位置指针,并得到图象的宽、高等信息信息使用文件中59显示图像数据 图像数据的显示在视图的类中CView中进行,在视图的CPP文件中的OnDraw(CDC*pDC)函数中可以完成这一绘制任务。应用程序的创建中当创建到视的客户区时既是调用改函数的默认格式完成对视区的绘制。我们只要将视区重新绘制一次即可完成绘制工作。显示图像数据 图像数据的显示在视图的类中CView中进行,60调色板的基本应用调色板的原理调色板的创建与实现显示函数调色板的基本应用调色板的原理61调色板的原理调色板就是在256色显示系统中,将图像中出现的256种颜色组成颜色表,对这些颜色按8位,即0至255进行编号,每一编号代表其中的一种颜色,在这种颜色中颜色编号叫做颜色的索引号。调色板的原理调色板就是在256色显示系统中,将图像中出现的262调色板的创建与实现在调色板系统中,每一幅图像都有自己的调色板,显示时必须将自己的调色板载入系统调色板中,实现调色板。调色板的创建与实现在调色板系统中,每一幅图像都有自己的调色板63显示函数在VisualC++环境中用于显示的主要有BitBlt函数、StretchBlt函数和StretchDIBits函数。BitBlt函数和StretchBlt函数属于CDC类,而StretchDIBits函数为API函数。显示函数在VisualC++环境中用于显示的主要有BitB64BitBlt()函数该函数的结构如下:BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwrop);参数说明: x:指定绘制目标矩形左上角的逻辑X轴位置。 y:指定绘制目标矩形左上角的逻辑Y轴位置。 nWidth:指定绘制目标矩形和源位图的宽度(按逻辑单位)。 nHeight:指定绘制目标矩形和源位图的高度(按逻辑单位)。 pSrcDC:设备上下文的指针。 xSrc,ySrc:指定源位图左上角的逻辑X轴、Y轴位置。dwrop:指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。当要将位图的像素从内存显示环境复制到显示器(或打印机)设备环境中,一般会用到这个函数。BitBlt()函数该函数的结构如下:65StretchBlt()函数该函数的结构如下:BOOLStretchBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,intnSrcWidth,intnSrcHeight,DWORDdwrop);参数说明: x:指定绘制目标矩形左上角的逻辑X轴位置。 y:指定绘制目标矩形左上角的逻辑Y轴位置。 nWidth:指定绘制目标矩形的宽度(按逻辑单位)。 nHeight:指定绘制目标矩形的高度(按逻辑单位)。 pSrcDC:设备上下文的指针 xSrc,ySrc:指定源位图左上角的坐标(按逻辑单位)。nSrcWidth,nSrcHeight:指定复制源位图的宽度和高度(按逻辑单位)。dwrop:指定要执行的光栅运算。其操作码定义了图形设备接口(GDI)在输出操作中如何组合颜色。StretchBlt()函数该函数的结构如下:66处理图像数据在Doc中通过两个函数afx_msgvoidOnSobel();和BOOLCImageProcessingDoc::Template(BYTE*lpDIBBits,LONGlWidth,LONGlHeight,intiTempH,intiTempW,intiTempMX,intiTempMY,FLOAT*fpArray,FLOATfCoef);来完成,具体的函数结构和源代码在例程中。处理图像数据在Doc中通过两个函数67程序范例具体编程讲解。程序范例具体编程讲解。68讨论与答疑讨论与答疑69数字图像处理VC++编程实现安秋南京农业大学工学院数字图像处理VC++编程实现安秋南京农业大学工学院70编程实现方法VisualC++图像处理编程MATLAB图像处理编程基于开源库OpenCV的图像处理编程基于其他库的图像处理编程编程实现方法VisualC++图像处理编程71图像处理的VC++编程VC++编程环境简介图像编程基础图像格式的理解BMP文件格式及读写程序范例图像处理的VC++编程VC++编程环境简介72 微型图像处理系统既包含硬件设备,也需要一定的软件环境支持。目前,图像处理系统平台多为MicrosoftWindows或X-Windows,开发的主流工具为Microsoft公司的VC++。这是因为VC++是一种具有高度综合性能的软件开发工具,用它开发出来的程序有着运行速度快、可移植能力强等优点。本书中实例也是在Windows平台下,用VC++6.0实现的。此外,各国的科学家和研究机构开发了不少专用的图像处理软件环境,下面仅对主要的几种作一简单介绍。 微型图像处理系统既包含硬件设备,也需要一定的软件环境支持。73VC开发环境简介VC编程需要的知识
C/C++语言;
对Windows操作系统的了解(底层编程);
微软类库MFC(MicrosoftFoundationClass)VisualC++是一个可视化集成开发环境掌握‘工程’的概念菜单使用介绍、Debug/Release区别等等VC开发环境简介VC编程需要的知识
C/C++语言;
对Wi74VC开发的两种方式(一)SDK(softwaredevelopmentkit)方式
又称WIN32API(应用程序接口)编程
即直接调用32位Windows(WIN32)操作系统提供的接口函数进行编程。SDK编程(VC中)使用的语言是C语言。适合底层编程和对速度要求较高的环境,比如游戏开发、驱动开发、数字图形等看图像打开、高斯噪声绘制的例子VC开发的两种方式(一)SDK(softwaredevel75VC开发的两种方式(二)MFC方式
又称类库编程,即程序主要不再直接跟操作系统API打交道(在需要的时候也可以调用API),而是使用封装好的C++类库。MFC编程的好处之一:可以使用MFC向导来生成程序框架,提高效率在这堂课中后面讲的程序都是MFC程序VC开发的两种方式(二)MFC方式
又称类库编程,即程序主要76C++语言是一种中级语言自然语言(高级语言)中级语言低级语言(机器语言)跳过去intm_nA=10;Intm_nB=10;Intm_nC=m_nB+m_nA;MOVAL,10MOVBL,10ADDAL,BLC++语言是一种中级语言自然语言中级语言低级语言跳过去int77C++语言的优缺点优点:编译语言脱离语言环境运行速度快代码少缺点:编译过程复杂语言可读性差容易犯错纠错困难C++语言的优缺点优点:编译语言缺点:编译过程复杂78C++语言是C语言的一个超集C语言C++语言VisualC++MFCC++语言是C语言的一个超集C语言C++语言VisualC+79C++是一种面向对象的程序语言CWinApp:程序对象CMainFrame:窗口对象Cdocument:文档对象Cview:视对象C++是一种面向对象的程序语言CWinApp:程序对象CMa80类的使用CWinApp:程序对象CMainFrame:窗口对象CDocument:文档对象CView:视对象每一个对象的定义就是一个类,类是C++新派生的一个数据类型,比较抽象。通常情况下可以简单理解为分类。使用:
CMainFramem_Frame;//创建一个类的实例,分配相应的内存。m_Frame.Create(NULL);//通过实例调用类中的变量、函数、行为等等。类的使用CWinApp:程序对象CMainFrame:窗口对81MFC类库简介MFC:微软开发的C++程序的类库,在类库内集成了Windows程序设计所经常使用到的类,如:窗口的管理、控件的管理、文件的管理、视的管理等。同时对类进行了树状的管理,通过封装和继承实现了简单实用的目的,而且功能强大,在Windows环境下编程和使用VC++编程应该对MFC了解。MFC类库简介MFC:微软开发的C++程序的类库,在类库内集82指针及其使用指针是C语言中一个非常重要的数据类型,通过指针可以实现直接对内存的存取。指针的声明:int*m_nNum;指针的赋值: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语言中一个非常重要的数据类型,指针的声明83堆和栈的概念堆和栈是计算机管理内存的两种方式:栈空间一般存储临时数据。堆空间一般存储较大的和生命期较长的数据。C语言中,单个的临时变量都放在栈中。intm_nNum=32;charm_cChar=‘m’;大型的数组变量放在堆中:intm_nNum[100];BYTE*m_nNum=(BYTE*)newBYTE[2000];堆和栈的概念堆和栈是计算机管理内存的两种方式:栈空间一般存储84new和delete操作符new操作符是C++的保留字,用来在堆中开辟一个指定大小的内存空间。BYTE*m_nData=(BYTE*)newBYTE[m_nWidth*m_nHeight];栈空间中的数据在函数调用结束,如果没有声明为全局变量,将被自动删除。堆空间的变量不会自动删除,需要程序员手工删除。delete[]m_nData;new和delete操作符new操作符是C++的保留字,用85VC++6.0工作平台VC++6.0工作平台86IDE的使用菜单工具条提示栏视窗口编辑窗口输出窗口IDE的使用菜单87窗口的概念图示中是我们讲要讲到的程序的界面,它是Windows系统的一个标准的界面,这种窗口框架结构也是视窗系统的核心。1、系统菜单2、程序菜单3、工具条4、视空间5、提示条窗口的概念图示中是我们讲要讲到的程序的界面,它是Window88文档/视图的概念文档/视图结构是Windows窗口结构中的标准形式。在单文档窗口程序中,生成一个单文档模板和窗口视图对应,这时视图是由窗口生成的。在多文档界面中,窗口类只生成主框架,而子窗口和子视图有文档模板生成。文档/视图的概念文档/视图结构是Windows窗口结构中的标89视的概念视结构是窗口中的客户区,用户可以在视区中画文字、画图像等等任意的屏幕的写操作。WindowsGUI对视结构做了优化,用户可以方便的调用MFC类库中的相关类完成复杂的任务。视的概念视结构是窗口中的客户区,用户可以在视区中画文字、画图90开始程序设计1、声明一个文件操作类:CFileRW2、在文件类内完成对BMP文件的读写操作。3、在CDoc类中调用CFileRW类的实例完成运算工作,同时在Doc中响应菜单的消息命令。4、在CFileRW中创建存放文件数据的堆变量数组,并以指针的形式完成调用。5、在Doc中实现对堆数组的用后删除。开始程序设计1、声明一个文件操作类:CFileRW91计算机软件及应用]数字图像处理VC++编程实现课件92图像在计算机中的理解这是一张计算机桌面的图像:0,01024,7681024,00,768XY基本元素:图像空间的大小:1024*768个像素。每个点的坐标(x,y)。颜色分辨率:32位彩色图像。00000000000000000000000011111111RBGA像素图像在计算机中的理解这是一张计算机桌面的图像:0,0102493三基色三基色94调色板在Windows操作系统内部默认存在着一个调色板,调色板的颜色是和显示卡的颜色能力相对应的,当前的真彩色卡支持3-4个字节一个点的彩色表,一般第四个字节用于透明显示通道。调色板中用8位的一个字节表示一种颜色分量,R或者G、B。所有的可能的颜色的组合为2^24。这也是VGA显示卡能够显示的最多的颜色数。所以我们把具有24位颜色的图像,叫做真彩色图像。调色板在Windows操作系统内部默认存在着一个调色板,调色95分辨率的概念图像的分辨率越高,图像的空间点阵数越多;图像的颜色分辨率越高,表示每个像素点的字节数越多;图像的存储空间大小(字节):空间点阵数*每个像素点的颜色字节数。分辨率的概念图像的分辨率越高,图像的空间点阵数越多;96图像的矩阵格式00000000000000011111111101010101000101010000000100000001000000011110000100000001000000010000000101100101001110010001011100000001图像在二进制格式中的形式1位表示一个点,两种颜色组合,黑白图像。4位表示一个点,16种颜色组合,16种颜色索引图像8位表示一个点,256种颜色组合,256种颜色索引图像。16位,24位,32位。0,01024PIXELS768PIXELS图像实际的存储空间大小:1024*768*24/8=2304K=2.25M(字节)图像的矩阵格式0000000000000001111111197图像的大小有一个长宽各为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!图像的大小有一个长宽各为200个象素,颜色数为16色的彩色图98图像文件中对上述特征的处理图像的永久保存是存储到图像文件中。由于图像具有各种不同的特征,所以在存储文件时应该予以细致的描述:图像大小、颜色分辨率的大小、是否压缩、是否自己定义调色板等等。这些信息都包含在图像文件的文件头中。图像文件中对上述特征的处理图像的永久保存是存储到图像文件中。99图像文件的格式类型标准的图像文件格式:图像文件头+图像的点阵数据。常用的图像文件格式:BMP\GIF\JPG\PCX等等。图像文件的格式类型标准的图像文件格式:图像文件头+图像的点阵100BMP位图文件类型 颜色深度的不同,就产生不同种类的图像文件,在计算机中常使用如下类型的图像文件:
单色图像(黑白)
灰度图像
伪彩色图像(8位和16位位图)
24位真彩色图像32位真彩色图像BMP位图文件类型 颜色深度的不同,就产生不同种类的图像文101单色图像单色图像中每个像素点仅占一位,其值只有0或1,0代表黑,1代表白或相反。单色图像单色图像中每个像素点仅占一位,其值只有0或1,0代表102灰度图像(1)文件带有图像颜色表,共有256项,每一表项由红、绿、蓝三色分量组成。fred(x,y)=fgreen(x,y)=fblue(x,y)(2)每个像素由8位组成,其值范围从0~255,像素值f(x,y)是图像颜色表的表项入口地址。125,153,158,157,127,70,103,120,129,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)文件带有图像颜色表,共有256项,每一表项103伪彩色图像(1)图像颜色表中的红、绿、蓝颜色分量值不全相等。fred(x,y)≠fgreen(x,y)≠fblue(x,y)(2)图像有256种颜色,像素值是图像颜色表的索引地址。伪彩色图像(1)图像颜色表中的红、绿、蓝颜色分量值不全相等104BMP文件的标准格式BMP文件的标准格式:54个字节大小的文件头;(不包括调色板)。以字节为基本单位的图像数据。在VC++中有标准的格式定义,两个结构变量,可以直接使用。位图文件的组成结构名称符号位图文件头(bitmap-fileheader)BITMAPFILEHEADERbmfh位图信息头(bitmap-informationheader)BITMAPINFOHEADERbmih彩色表(colortable)RGBQUADaColors[]图象数据阵列字节BYTEaBitmapBits[]BMP文件的标准格式BMP文件的标准格式:位图文件的组成结105BMP文件格式摘要
偏移量
域的名称
大小
内容
图象文件头
0000h文件标识2bytes两字节的内容用来识别位图的类型:‘BM’:Windows3.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)之间的偏移量BMP文件格式摘要偏移量域的名称大小内容000106图象信息头001ChBitsPerPixel1word每个象素的位数1-单色位图(实际上可有两种颜色,缺省情况下是黑色和白色。你可以自己定义这两种颜色)
4-16色位图
8-256色位图
16-16bit高彩色位图
24-24bit真彩色位图
32-32bit增强型真彩色位图001EhCompression1dword压缩说明:0-不压缩(使用BI_RGB表示)
1-RLE8-使用8位RLE压缩方式(用BI_RLE8表示)
2-RLE4-使用4位RLE压缩方式(用BI_RLE4表示)
3-Bitfields-位域存放方式(用BI_BITFIELDS表示)0022hBitmapDataSize1dword用字节数表示的位图数据的大小。该数必须是4的倍数0026hHResolution1dword用象素/米表示的水平分辨率002AhVResolution1dword用象素/米表示的垂直分辨率002EhColors1dword位图使用的颜色数。如8-比特/象素表示为100h或者256.0032hImportantColors1dword指定重要的颜色数。当该域的值等于颜色数时(或者等于0时),表示所有颜色都一样重要图001ChBitsPerPixel1word107调色板数据根据BMP版本的不同而不同PaletteN*4byte调色板规范。对于调色板中的每个表项,这4个字节用下述方法来描述RGB的值:1字节用于蓝色分量1字节用于绿色分量1字节用于红色分量1字节用于填充符(设置为0)图象数据根据BMP版本及调色板尺寸的不同而不同BitmapDataxxxbytes该域的大小取决于压缩方法及图像的尺寸和图像的位深度,它包含所有的位图数据字节,这些数据可能是彩色调色板的索引号,也可能是实际的RGB值,这将根据图像信息头中的位深度值来决定。调色板数据根据BMP版本的不同而不同PaletteN*4108单个像素的真彩色文件分析424D-BM3A000000-文件长度00000000-》保留字节36000000---》数据区起始地址28000000--》本结构长度40个字节01000000--》位图的宽度,以像素为单位01000000--》位图的高度,以像素为单位0100---》目标设备的级别,必须为11800--》每个像素所需的位数24位00000000---》位图压缩类型,必须是004000000---》位图的大小,以字节为单位00000000--》位图水平分辨率,每米像素数00000000---》位图垂直分辨率,每米像素数00000000---》位图实际使用的颜色表中的颜色数00000000---》位图显示过程中重要的颜色数WinHex软件文件标识文件头信息头数据区文件长度保留字节数据区起始地址信息头结构大小位图压缩类型颜色表颜色数单个像素的真彩色文件分析424D-BM280000109单个像素的256伪彩色位图文件调色板256项单个像素的256伪彩色位图文件调色板256项110数据数据111256色位图文件调色板数据调色板256项;所占字节数:256*4=1024;1024/16=64行;总行数43h=4*16+3=67行;文件头占3行;所以占64行。每行16字节,可以存储4个表项,64*4=256个表项。256色位图文件调色板数据调色板256项;112程序中图像数据的存储和使用图像数据在图像文件中存储的方式:图像文件只能够以数据流的方式存取数据,所以图像数据是以连续的字节存放的。00100111001001110010011100100111001001111234102520491024*768文件和内存中010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101显示屏幕0,01024*768程序中图像数据的存储和使用图像数据在图像文件中存储的方式:0113图像矩阵格式与流格式的对应点阵:宽度m_nWidth,高度m_nHeight横向的位值X,纵向的位置Y,f(x,y)是坐标X,Y处的颜色值。数据流:f(x,y)=g(y*m_nWidth+x);g(n)数据流中n位值的颜色值。图像矩阵格式与流格式的对应点阵:宽度m_nWidth,高度m114BMP文件存储格式
(BMPVC中的描述) BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。位图结构如下所示:位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据VC6.0中用BITMAPFILEHEADER和BITMAPINFOHEADER两个结构变量来描述BMP文件的文件头。BMP文件存储格式
(BMPVC中的描述) BMP文件由文115位图文件头(第一部分)第一部分为位图文件头BITMAPFILEHEADER,是一个结构,其定义如下: 这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整数)typedefstructtagBITMAPFILEHEADER{WORDbfType;//文件类型描述,必须为BMDWORDbfSize;//以字节为单位的图像文件大小。WORDbfReserved1;//保留为0WORDbfReserved2;//保留为0DWORDbfOffBits;//从这个结构末尾到图像数据开始的字节数。}BITMAPFILEHEADER,*PBITMAPFILEHEADER;位图文件头(第一部分)第一部分为位图文件头BITMAPFIL116位图信息头(第二部分)typedefstructtagBITMAPINFOHEADER{DWORDbiSize;//这个结构的字节数(大小)LONGbiWidth;//图像的宽度。LONGbiHeight;//图像的高度WORDbiPlanes;//目标设备的为平面数,指定为1。WORDbiBitCount;//每个像素点的颜色位数。(0,1,4,8,16,24,32)DWORDbiCompression;//图像是否压缩,压缩格式。DWORDbiSizeImage;//图像数据的大小(字节)LONGbiXPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)水平方向;LONGbiYPelsPerMeter;//每个像素点的空间分辨率(每米点的个数)垂直方向;DWORDbiClrUsed;//描述实际使用到的颜色数,0DWORDbiClrImportant;//显示时使用的颜色数,0;}BITMAPINFOHEADER,*PBITMAPINFOHEADER;这个结构的长度是固定的,为40个字节(WORD为无符号16位整数,DWORD无符号32位整数,LONG为32位整数)位图信息头(第二部分)typedefstructtagB117biSizeImage字段biSizeImage 指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来: biSizeImage=biWidth‘*biHeight 要注意的是:上述公式中的biWidth‘必须是4的整倍数(所以不是biWidth,而是biWidth‘,表示大于或等于biWidth的,离4最近的整倍数。举个例子,如果biWidth=240,则biWidth‘=240;如果biWidth=241,biWidth‘=244)
一定要注意:每行所占字节长度始终是4的倍数,或者每行所占位长度是32的倍数。如果不是,则需要补齐
biSizeImage字段biSizeImage118调色板/颜色表(第三部分)调色板实际上是一个四元数组,则有2的biBitCount次方个元素。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。typedefstructtagRGBQUAD{ BYTE rgbBlue; //蓝色分量 BYTE rgbGreen; //绿色分量 BYTE rgbRed; //红色分量 BYTE rgbReserved;//保留值 } RGBQUAD;
注意:24位真彩色图中没有调色板数据!!调色板/颜色表(第三部分)调色板实际上是一个四元数组,则有2119位图信息-BITMAPINFO结构 位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:structtagBITMAPINFO{
BITMAPINFOHEADERbmiHeader;RGBQUADbmiColors[1];//颜色表}BITMAPINFO;位图信息-BITMAPINFO结构 位图信息头和颜色表组成120位图数据
结构数据域含义BITMAPFILEHEADERbfType字节“BM”bfSize文件总字节数BfReserved10BfReserved10bfOffBit位图数据距文件头的偏移量BITMAPINFOHEADERbiSize本结构大小的字节数biWidth位图的宽度,单位为像素点biHeight位图的高度,单位为像素点biPlanes1biBitCount像素的位数(1,4,8,24)biCompression压缩方式(0表示不压缩)bisizeImage位图数据的字节数biXpelsPerMeter水平分辨率(像素点/米)biYpelsPerMeter垂直分辨率(像素点/米)biClrUsed图像中使用的颜色数biClrImportant图像中重要的颜色数RGBQUADrgbBlue蓝色的比例rgbGreen绿色的比例rgbRed红色的比例rgbReserved0位图数据
结构数据域含义BITMAPFILEHEAD121实际的位图数据区(第四部分)第四部分就是实际的图象数据了。对于用到调色板的位图,图象数据就是该像素颜在调色板中的索引值。对于真彩色图,图象数据就是实际的R,G,B值。下面就2色,16色,256色位图和真彩色位图分别介绍。 对于2色位图,用1位就可以表示该像素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个像素。 对于16色位图,用4位可以表示一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻纺厂员工晋升选拔制度
- 编曲家考试试卷及答案
- 2026届黔西南市重点中学高三六校第一次联考化学试题试卷含解析
- 专题05 抛体模型的运动学问题与功能动量(教师版)
- 专题六光、热学和近代物理(培优教师版)
- 2026春小学信息技术四年级下册(清华版新疆)期末练习卷附答案
- 2026届福建省福州教育学院附属中学高三招生统考(二)化学试题模拟试卷含解析
- 超市加盟合同
- 2025~2026学年河南许昌市禹州市上学期期末质量检测九年级英语
- 2026旅游法考试题库及答案
- 洛阳二外小升初数学试卷
- 元明对新疆的治理
- 四川省成都市2025年中考英语试题及答案
- 知道智慧树国际金融(南开大学)满分测试答案
- 2024中华护理学会团体标准-注射相关感染预防与控制
- 档案劳动协议书
- 2025年德勤秋招测试题及答案大全
- 转诊考核管理办法
- 第9课+友好相处+学会合作-教案【中职专用】中职思想政治《心理健康与职业生涯》(高教版2023基础模块)
- 东方航空合同管理制度
- 2025年山东省中考数学真题试卷(原卷版)
评论
0/150
提交评论