2022年数字图像处理实习综合学习课程 .pdf

上传人:C****o 文档编号:33365738 上传时间:2022-08-10 格式:PDF 页数:10 大小:48.40KB
返回 下载 相关 举报
2022年数字图像处理实习综合学习课程 .pdf_第1页
第1页 / 共10页
2022年数字图像处理实习综合学习课程 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年数字图像处理实习综合学习课程 .pdf》由会员分享,可在线阅读,更多相关《2022年数字图像处理实习综合学习课程 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数字图像处理课程综合实习指导书武汉大学遥感信息工程学院实验中心精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 10 页数字图像处理课程综合实习说明实习目的本实习内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。为学生进一步学习数字摄影测量、遥感和地理信息系统等专业课程以及应用图像处理解决实际问题奠定基础。实习要求:(1)实习前应认真复习和熟悉图像的存储格式、图像处理的常用算法的理论知识。(2)实习者应熟悉 C或 VC

2、程序设计语言。(3)每人固定用一台计算机,以班级学号名建立文件夹,将自己的实习成果存放在自己的文件夹中。(4)实习完成后,老师将根据最后成果评分。(5)每个同学最后要递交一份实习报告和按实习要求编写的程序。实习考核评分办法:(1)考勤(迟到、早退、旷课扣分) (20 分) ;(2)编程实现的算法和功能( 50分) ;(3)实习报告( 30 分) ;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 10 页第一部分数字图像处理的基础知识1、数字图像概念数字图像是连续图像的一种近似表示,通常用由采样点的值所组成的矩阵来表示:每一个采样点叫做一

3、个像素(pixel ) 。上式中 m,n 分别为数字图像的行数和列数。在计算机内,通常采用二维数组来表示数字图像的矩阵。把像素按不同的方式进行组织或存储,就得到不同的图像格式, 把图像数据存成文件就得到图像文件。图像文件按其数字图像格式的不同一般具有不同的扩展名, 常见的图像文件格式有:RAW 格式、 BMP 格式、 TGA格式、 PCX格式、 GIF 格式、 TIFF 格式等。2、BMP文件构成BMP 格式: 这是一种常用的数字影像格式,一个 BMP 文件大体上分成如下4个部分:BITMAPFILEHEADER(位图文件头) 、BITMAPINFOHEADER(位图信息头) 、Palette

4、(调色版)、DIB Pixels(DIB 图像数据) 。第一部分:位图文件头BITMAPFILEHEADER,它是一个结构 typedef struct tagBITMAPFILEHEADER WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER; 该结构的长度是固定的,为14 个字节,各参数说明如下:bfType :指定文件类型,必须是0 x424D,即字符串“BM ”。也就是说所有的“.bmp”文件的头

5、两个字节都是“ BM ” bfSize :指定文件大小;bfReserved1 、bfReserved2 :为保留字,不用考虑;bfOffBits:为文件头到实际的位图数据的偏移字节数,也就是前三部分长度之和。第二部分:位图信息头BITMAPINFOHEADER typedef struct tagBITMAPINFOHEADER DWORD bfSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMet

6、er; 1, 11, 10,11,11, 10,11,01,00,0,nmmmnniiiiiiiiinmII精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 10 页 LONG biYPersPerMeter; DWORD biClrUsed; DWORD biClrImportant; BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER;该结构的长度为40 个节,各参数的意义说明如下:biSize :指定这个结构的大小,为40 个字节;biWidth :指定图像的宽度,单位是像素;biHeight :指定

7、图像的高度,单位是像素;biPlanes :必须是1;biBitCount:指定表示颜色要用到的位数,常用的值1( 黑白 )8 (256 色) 、24(真彩色);biCompression :指定位图是否压缩,有效值为BI_RGB 、BI_RLE4、 BI_RLE8。其中 BI_RGB为不压缩的情况。biSizeImage ;指定实际的位图数据占用的字节数。可以用下面的公式计算:需要注意的是:上述公式中的biWidth不一定总等于biWidth ,biWidth必须是 4 的整数倍,表示大于或等于biWidth的离 4 最近的整倍数。biXPelsPerMeter:指定目标设备的水平分辨率,单

8、位是每米的像素个数;biYPelsPerMeter;指定目标设备的垂直分辨率,单位是每米的像素个数;biClrUsed :指定本图像实际用到的颜色数,如果该值为0 则用到的颜色数为2 的 biBitCount次幂;biClrImportant: 指定本图像中重要的颜色数,如果该值为零, 则认为所用的颜色都是重要的。第三部分: Palette(调色板)调色板实际上是一个数组,共有biClrUsed(颜色数 ) 个元素(如果该值为 0,则为 2 的 biBitCount次幂)。数组中每个元素( 颜色 ) 的类型为一个RGBQUAD 结构,占4个字节。结构定义如下: typedef struct t

9、agRGBQUAD BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; RGBQUAD; 注意:有些位图,比如真彩色图,没有调色板。他们的位图信息头(BITMAPINFOHEADER)后直接是DIB 数据。第四部分: DIB 图像数据分两种情况:对于用到调色板的位图,图像数据就是该像素颜色在调色板中的索引值;对于真彩色图,图像数据就是实际的R、G 、B值。对于 2 色位图,用1 位就可以表示该像素的颜色,因此一个字节可以表示8 个像素;对于 16 色位图,用4 位可以表示一个像素的颜色,所以1 个字节可以表示2 个像素;对于

10、256 色位图,一个字节刚好表示一个像素;对于真彩色图,3 个字节才能表示1 个像素注意: 1. 每一行的字节数必须是4 的整倍数,如果不是,则需要补齐; 2. 图像数据是按照从上到下、从左到右的顺序存储;我们最先读到的是图像最下面一行的左边第一个像素,然后是左边第二个像素接下来是倒数第二行左边第一个像素,左第二个像素依此类推,最后得到的是最上面一行的最后一个像素。ImbiSizeagebiWidthbiHeight精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 10 页3、常用位图函数int SetDIBitsToDevice(HDC

11、 hdc,int XDest,int YDest,DWORD dwWidth, DWORD wHeight, int XSrc,int YSrc,UINT uStartScan,UINT cScanLines,CONST VOID *lpBits, CONST BITMAPINFO *lpbmi,UINT fuColorUse) 该函数可以直接在显示器或打印机上显示DIB,在显示时不进行缩放处理,即位图的每一个像素对应于一个显示像素或打印机的打印点。其中各参数的含义如下:HDC hdc:设备上下文句柄。它可以是CDC对象的公共成员变量m_hDC 。int Xdest:指定绘图区域的左上角x 坐

12、标(逻辑单位)int Ydest:指定绘图区域的左上角y 坐标(逻辑单位)DWORD dwWidth :指定 DIB 的宽度(逻辑单位)DWORD dwHeight :指定 DIB 的高度(逻辑坐标)int Xsrc:指定原绘图要绘制区域的左上角x 坐标(逻辑单位)int Ysrc:指定原绘图要绘制区域的左上角y 坐标(逻辑单位)UINT uStartScan:指定 DIB 扫描的起始行UINT cScanLines :指定 DIB 扫描的行数(即DIB 的高度)CONST VOID* lpBits :指向 DIB 图像数据的指针lpbmi :指向 BITMAPINFO 结构的指针fuColo

13、rUse : 指定 BITMAPINFO 结构中的 bmiColors参数代表真实的RGB值还是调色板中的索引值,它有两种可能的取值: DIB_PAL_COLORS:代表索引值 DIB_RGB_COLORS:代表真实的RGB 值该函数如果调用成功,返回绘制的行数;失败,则返回0。int StretchDIBits(HDC hdc,int XDest,int YDest,int nDestWidth, int nDestHeight,int XSrc,int YSrc,int nSrcWidth,int nSrcHeight, CONST VOID *lpvBits,CONST BITMAPIN

14、FO *lpbmi,UINT iUsage,DWORD dwRop) int nSrcWidth:指定要复制原图像矩形区域的宽度(逻辑单位)int nSrcHeight:指定要复制原图像矩形区域的高度(逻辑单位)lpBits:指向 DIB 图像数据区的指针lpBitsInfo:指向 BITMAPINFO结构的指针iUsage :指定 BITMAPINFO 结构中的bmiColors参数代表真实的RGB值还是调色板中的索引值,它有两种可能的取值: DIB_PAL_COLORS:代表索引值 DIB_RGB_COLORS:代表真实的RGB值dwRop :指定绘制方式;常用的值为SRCCOPY,表示将

15、原位图复制到目标位图该函数如果调用成功,返回绘制的行数;如果调用失败,则返回GDI_ERROR。读.bmp 文件的函数原型HDIB ReadDIBFile(CFile& file)函数的参数Cfile &file:为文件名;该函数的返回值是文件中的图像数据的句柄。4. 将图像数据保存成.bmp 文件,函数原型BOOL WINAPI SaveDIB(HDIB hDib, CFile& file) 第一个参数为hDIB 表示保存图像数据的内存区域的句柄第二个参数为保存图像的文件名。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 10 页5、

16、查找位图像素LPSTR WINAPI FindDIBBits(LPSTR lpbi):此函数用于计算DIB 位图图像数据的地址,返回一个指向位图图像数据起始位置的指针。6、GlobalLock (HGLOBAL hMem ) 、GlobalUnLock( HGLOBAL hMem ) 申请内存、释放内存函数。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 10 页第二部分实习内容实习一、将 RAW 图像格式转换成BMP 图像格式一、实习目的熟悉常用的图像文件格式与格式转换,认识各图像格式的优缺点;掌握 RAW 和 BMP格式的存储和读取

17、,编程实现RAW BMP格式的转换,为读取各种格式文件打基础。二、实习原理RAW 格式:文件按照数字图像组成的二维矩阵,将像素按行列号顺序存储在文件中。这种文件只含有图像像素数据,不含有信息头,因此,在读图像时,需要根据文件大小,计算图像所包含的行列号,或者需要事先知道图像大小(矩阵大小)。但这种文件读取和保存简单。RAW 文件按图像上行到下行、左列到右列顺序存储,而BMP文件数据区按图像上下行到上行、左列列到右列顺序存储到数据区。实现 RAW 文件到 BMP 文件的转换,需要为BMP文件生成文件头、信息头、颜色表、数据区,将RAW 文件数据区赋值到BMP 文件数据区。三、实习内容和要求1、

18、掌握 BMP 格式的读取和存储,创建CDib 类;2、 实现从 RAW 格式到 BMP格式的转换。四、实习步骤1、 根据学号新建自己的文件夹;2、 使用 AppWizard 生成一个基于多文档的项目(自己命名);3、 将 CxxxxView 类的基类设为CscrollView类,使项目显示图像时支持滚动条;4、 将所给程序的Dibapi.h和 Dibapi.cpp加入自己新建的项目中;5、 编译连接运行自己的程序,看运行结果;6、 添加菜单项“RAW- BMP ” ,并建立相应的消息处理函数;7、 在函数体内添加自己的代码,实现RAW 的读取,并实现RAW 到 BMP 格式的转换功能。8、 修

19、改程序编制中出现的各种语法错误和逻辑错误;9、 检查程序运行结果。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 10 页实习二 编写线性灰度变换的程序一、实习目的熟悉图像点增强的一般方法,掌握图像点增强的算法和原理,会用编程方法实现其算法。二、实习原理点运算是指像素值(即像素点上的灰度值)通过运算改变之后,可以改善图象的显示效果。这是一种像素的逐点运算,是旧图象与新图象之间的映射关系,是一种简单但却十分有效的一种图象处理手段。常用方法有灰度线性变换、直方图均衡、对比度调整、直方图规定化、对数变换、指数变换、密度分割等方法。灰度的线性变

20、换就是指图像的中所有点的灰度按照线性灰度变换函数进行变换。灰度变换方程如下:该方程为线性方程。式中参数iD为输入图像的像素的灰度值,参数0D为输出图像的三、实习内容和要求1、 熟悉基于点运算增强的灰度线性变换算法;2、 认真阅读图像显示程序段以及像素灰度值的读取、改变与存储;3、 在实习一的基础上完成灰度线性变换的程序编制。四、实习步骤1、 打开自己实习一所建的项目;2、 添加菜单项“线性拉伸”;3、 为该菜单项建立消息处理函数;4、 在函数定义处添加自己的源代码。5、 编译检查语法错误,若编译通过,运行程序,检查是否能实现灰度线性变换。五、思考题1、线性变换后,像素的灰度值是否超出0-255

21、 的范围,若超出,该如何处理?2、若要实现直方图均衡,该如何实现?试用流程图表示。()OiiDf DfA DfB1010010fAfBfAfBfAfA输出图像的对比度将增大灰度值上移或下移, 更亮或更暗输入和输出图像相同灰度。输出图像的对比度将减小特殊的255, 1 fBfA, 输出图像灰度反转精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 10 页实习三编写局部处理的程序一、实习目的熟悉图像局部处理的一般方法,掌握图像局部处理的算法和原理,会用编程方法实现其算法。二、实习原理局部处理在处理某一像素时,利用与该像素相邻的一组像素,经过某

22、种变换得到处理后图像中某一点的像素值。目标像素的邻域一般是由像素组成的二维矩阵,该矩阵的大小为奇数,目标像素位于该矩阵的中央,即目标像素就是区域的中心像素。经过处理后,目标像素的值为经过特定算法计算后所得的结果。主要的局部处理算法有卷积、中值滤波sobel 边缘检测等,其中卷积算法的应用最广泛,大部分的局部处理都采用卷积算法来实现。卷积可以简单地看成加权求和的过程。卷积时使用的权用一个很小的矩阵来表示,矩阵的大小是奇数,而且与使用的区域的大小相同。这种权矩阵叫做卷积核,区域中的每个像素分别与卷积核中的每个元素相乘,所有乘积之和即为区域中心像素的新值。比如,对于一个3x3 的区域 P与卷积核 K

23、卷积后,区域P的中心像素5p表示为:915.iiikpp其中,P=987654321ppppppppp,K=987654321kkkkkkkkk卷积核中各元素叫做卷积系数。卷积核中卷积系数的大小、方向积排列顺序决定了卷积的图像处理效果,如低通滤波:图像平滑与模糊,高通滤波:图像锐化与清晰。通常采用3x3、5x5 或 7x7的卷积核,所有卷积核的行、列数都是奇数。进行卷积运算时将会遇到的三个问题:(1)图像边界的问题;(2)计算得到的中心像素的动态范围问题;(3)卷积结果像素值的符号问题。三、实习内容和要求1、熟悉基于局部处理的卷积算法;2、在实习二的基础上完成用3x3 卷积核实现局部处理的程序

24、编制;3、解决实习原理中提出的卷积运算中出现的问题。四、实习步骤1、打开自己实习一所建的项目;2、添加菜单项“3x3 低通滤波”、 “3x3 高通滤波”菜单项;3、为新加的两个菜单项分别建立消息处理函数;4、在函数体内添加实现3x3 低通滤波(或3x3 高通滤波)的源代码。5、编译检查语法错误,若编译通过,运行程序,检查是否能实现局部处理算法。五、思考题1、 若要检测水平边缘,该采用什么算子;2、 如何实现Sobel 边缘检测算子?精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 10 页实习四实习八以下内容任选五个单元,算法通过查找资料、阅读文献方式自主设计完成。单元一灰度图像中值滤波单元二图像几何处理:图像平移、缩放和旋转变换单元三基于高通滤波的影像融合单元四基于HIS 变换的影像融合方法单元五灰度图像边缘检测单元六图像二值化:判断分析法单元七 Hough 变换检测直线单元八纹理图像的自相关函数分析法单元九灰度共生矩阵特征提取单元十基于灰度的模板匹配单元十一基于特征的模板匹配单元十二形状特征提取精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 10 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁