版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像处理数字图像处理课程实验课程实验共8学时使用平台:vc6.0三个实验:三个实验:lVC图像编程基础图像编程基础l 了解位图格式了解位图格式l 掌握掌握CDIB类的使用类的使用l 学会新建工程学会新建工程l 学会添加菜单项和响应函数学会添加菜单项和响应函数l 掌握位图的打开和显示掌握位图的打开和显示l一个简单的图像处理工程实例一个简单的图像处理工程实例 l 功能函数的编程实现功能函数的编程实现l 掌握图像的点运算编程掌握图像的点运算编程l 了解二值化和底片化的原理了解二值化和底片化的原理l l图像的空间域平滑和锐化图像的空间域平滑和锐化 l 掌握空间域平滑锐化的基本原理掌握空间域平滑锐化
2、的基本原理l 编写实现空间域平滑锐化功能的代码编写实现空间域平滑锐化功能的代码一、一、VC图像处理基础图像处理基础l重点:重点:l 位图的读取和显示位图的读取和显示l难点:难点:l VC开发环境、类的使用开发环境、类的使用l必备知识:必备知识:l 熟悉熟悉VC基本环境如会建立一个工程、基本环境如会建立一个工程、会使用一个现成的类)会使用一个现成的类)主要内容主要内容lBmp位图图像格式lCDIB类的介绍lVc的基本知识l建立一个新工程l利用CDIB类打开、显示图像位图图像格式位图图像格式 BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。文件头文件头位图信息位图信息(信息头颜色信息
3、表)(信息头颜色信息表)图像数据图像数据位图图像格式文件头位图图像格式文件头BMP文件头数据结构含有文件头数据结构含有BMP文件的类型、文件大文件的类型、文件大小和位图起始位置等信息。小和位图起始位置等信息。 其结构定义如下其结构定义如下:typedef struct tagBITMAPFILEHEADER WORD bfType; / 位图文件的类型,必须为位图文件的类型,必须为BM DWORD bfSize; / 位图文件的大小,以字节为位图文件的大小,以字节为单位单位 WORD bfReserved1; / 位图文件保留字,必位图文件保留字,必须为须为0 WORD bfReserved2
4、; / 位图文件保留字,必位图文件保留字,必须为须为0 DWORD bfOffBits; / 位图数据的起始位置,以位图数据的起始位置,以相对于位图相对于位图 / 文件头的偏移量表示,以字文件头的偏移量表示,以字节为单位节为单位 BITMAPFILEHEADER;位图图像格式位图信息头位图图像格式位图信息头lBMP位图信息头数据用于说明位图的尺寸等信息。ltypedef struct tagBITMAPINFOHEADERDWORD biSize; / 本结构所占用字节数LONG biWidth; / 位图的宽度,以像素为单位LONG biHeight; / 位图的高度,以像素为单位WORD
5、biPlanes; / 目标设备的级别,必须为1WORD biBitCount/ 每个像素所需的位数,必须是1(双色), / 4(16色),8(256色)或24(真彩色)之一DWORD biCompression; / 位图压缩类型,必须是 0(不压缩), / 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一DWORD biSizeImage; / 位图的大小,以字节为单位LONG biXPelsPerMeter; / 位图水平分辨率,每米像素数LONG biYPelsPerMeter; / 位图垂直分辨率,每米像素数DWORD biClrUsed;/ 位图实际使用的颜色表中的颜
6、色数DWORD biClrImportant;/ 位图显示过程中重要的颜色数 BITMAPINFOHEADER; 位图图像格式颜色信息表位图图像格式颜色信息表l颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。l RGBQUAD结构的定义如下:typedef struct tagRGBQUAD l BYTErgbBlue;/ 蓝色的亮度(值范围为0-255) BYTErgbGreen; / 绿色的亮度(值范围为0-255) BYTErgbRed; / 红色的亮度(值范围为0-255) BYTErgbReserved;/ 保管,必须为0 l RG
7、BQUAD;l 位图图像格式颜色信息表位图图像格式颜色信息表l颜色表中RGBQUAD结构数据的个数有biBitCount来确定: biBitCount=1,4,8时,分别有2,16,256个表项;当biBitCount=16,24,32时,没有颜色表项。l位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader; / 位图信息头 RGBQUAD bmiColors1; / 颜色表 BITMAPINFO;位图图像格式象素数据位图图像格式象素数据l位图数据位图数据位图数据记录了位
8、图的每一个像素值,位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右记录顺序是在扫描行内是从左到右,扫描扫描行之间是从下到上。位图的一个像素值所行之间是从下到上。位图的一个像素值所占的字节数占的字节数:当当biBitCount=1时,时,8个像素占个像素占1个字节个字节;当当biBitCount=4时,时,2个像素占个像素占1个字节个字节;当当biBitCount=8时,时,1个像素占个像素占1个字节个字节;当当biBitCount=16时时,1个像素占个像素占2个字节个字节RGB555格式)格式);当当biBitCount=24时时,1个像素占个像素占3个字节个字节BGR格式)
9、格式);当当biBitCount=32时时,1个像素占个像素占4个字节个字节BGR-格式,格式,-表示不处理的字节)表示不处理的字节)位图图像格式象素数据位图图像格式象素数据lWindows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,一个扫描行所占的字节数计算方法:DataSizePerLine= (biWidth* biBitCount+31)/8; / 一个扫描行所占的字节数DataSizePerLine= DataSizePerLine/4*4; / 字节数必须是4的倍数位图数据的大小(不压缩情况下):DataSize= DataSizePerLine
10、* biHeight; CDIB类介绍类介绍 该类将位图文件的读取、象素数据的获取及显示进行了封装。具体的代码见附带的电子参考资料。下面介绍具体的成员和方法: CDIB类介绍类介绍 1、bool CDIB:LoadFromFile(LPCTSTR lpszFileName) 功能:用于加载位图。 参数:lpszFileName表示加载的位图路径和名称。如:d:test123.bmp 返回值:成功读取后,返回true,否则为false 留意:但调用该函数成功加载位图后,CDIB类的成员变量m_bLoaded将变为true,否则为false,因此,可以通过m_bLoaded来进行判断是否加载了位图
11、。CDIB类介绍类介绍 2、int GetDIBWidth()功能:获取位图的宽度返回值:位图的宽度留意:该函数只有在加载位图后才能调用,否则会出错可通过m_bLoaded来判断)。3、int GetDIBHeight()功能:获取位图的高度返回值:位图的高度留意:该函数只有在加载位图后才能调用,否则会出错可通过m_bLoaded来判断)。CDIB类介绍类介绍 4、void CDIB:ShowDIB(CDC *pDC, int nLeft, int nTop, int nRight, int nBottom, BYTE *pDIBData,BITMAPINFO* pBMI)功能:显示位图参数:
12、pDC /DC的句柄nLeft, /目标矩形左上角的X坐标nTop, /目标矩形左上角的Y坐标nRight, /目标矩形的宽度nBottom, /目标矩形的高度0, /源矩形左上角的X坐标0, /源矩形左上角的Y坐标GetDIBWidth(), /源矩形的宽度GetDIBHeight(), /源矩形的高度pDIBData, /位图图象数据的地址 pBMI, /位图信息结构地址CDIB类介绍类介绍 5 5、InvalidateData()InvalidateData()功能:将功能:将m_pdata m_pdata 的信息赋值给的信息赋值给m_pDIBDatam_pDIBData,便于显示,便于
13、显示m_pdatam_pdata的信的信息。息。 6 6、几个重要的成员变量、几个重要的成员变量BYTE BYTE * *m_pdata; /m_pdata; /位图的灰度信息位图的灰度信息bool m_bLoaded; /bool m_bLoaded; /表示是否加载了位图表示是否加载了位图BITMAPINFOBITMAPINFO* * m_pBMI; / m_pBMI; /位图信息头位图信息头BYTEBYTE* * m_pDIBData; / m_pDIBData; /位图象素数据指针位图象素数据指针BYTEBYTE* * m_pDumpDIBData; / m_pDumpDIBData;
14、 /位图象素数据指针位图象素数据指针BITMAPFILEHEADER bfh; /BITMAPFILEHEADER bfh; /位图信息头位图信息头BITMAPINFOHEADER bih; / BITMAPINFOHEADER bih; / 位图文件头位图文件头CDIB类介绍类介绍 文件头信息头01234567891011.m_pdata与m_pDIBData的关系01234567891011.m_pdatam_DIBData8位图中两者的关系CDIB类介绍类介绍 文件头信息头0-b0-g0-r1-b1-g1-r2-b2-g2-r3-b3-g3-r.0123.m_pdatam_DIBData
15、24位图中两者的关系m_pdata与m_pDIBData的关系CDIB类介绍类介绍 留意:留意:m_pdata与与m_pDIBData的关系的关系如果是如果是8位图,位图,m_pdata与与m_pDIBData两个两个指针指向的数据块内容是相等的,即:指针指向的数据块内容是相等的,即:m_pdatak=m_pDIBDatak如果是如果是24位图,位图,m_pdata与与m_pDIBData两两个指针指向的数据块内容是不相等的,个指针指向的数据块内容是不相等的,m_pDIBData代表的是象素的代表的是象素的RGB格式,而格式,而m_pdata表示的是象素的灰度信息。表示的是象素的灰度信息。 m
16、_pdata与m_pDIBData的关系CDIB类介绍类介绍 当为当为2424位图时,显示时采用位图时,显示时采用m_pDIBDatam_pDIBData数据,数据,为简单起见,我们可以仅仅对灰度信息进行处为简单起见,我们可以仅仅对灰度信息进行处理,因为在灰度信息理,因为在灰度信息m_pdatam_pdata数据中,一个象素数据中,一个象素对应于一个字节,而彩色信息对应于一个字节,而彩色信息m_pDIBDatam_pDIBData数据数据中,一个象素对于于三个字节。如果对中,一个象素对于于三个字节。如果对m_pdatam_pdata进行处理后,我们可以通过调用进行处理后,我们可以通过调用InvalidateData()InvalidateData()函数来将函数来将m_pdatam_pdata的数据赋值的数据赋值给给m_pDIBDatam_pDIBData,从而显示处理结果。,从而显示处理结果。CDIB类介
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025华夏银行兰州分行招聘笔试历年典型考题及考点剖析附带答案详解
- 2025北京市自来水集团禹通市政工程有限公司社会招聘35人笔试历年典型考点题库附带答案详解
- 2025农业银行阿坝分行春招职位笔试历年典型考题及考点剖析附带答案详解2套
- 2025内蒙古鄂尔多斯市国源矿业开发有限公司招聘75人笔试历年难易错考点试卷带答案解析
- 2025内蒙古新能绿电电力服务有限公司招聘8人笔试历年典型考点题库附带答案详解
- 2025内蒙古呼伦贝尔农垦谢尔塔拉农牧场有限公司招聘系统笔试历年难易错考点试卷带答案解析
- 2025兴业银行长沙分行校园招聘(10月31日截止)笔试历年典型考题及考点剖析附带答案详解
- 2025光大银行考试11月初笔试历年典型考题及考点剖析附带答案详解
- 2025交通银行江西省分行秋季校园笔试历年典型考题及考点剖析附带答案详解2套
- 环境空气质量自动监测站工程农用地转用方案
- 2026年自贡市中考地理试卷(含答案)
- 2026北京朝阳十八里店乡城市协管员招聘8人备考题库及一套答案详解
- 2026年全国统一高考数学真题(高考Ⅱ卷)附答案
- 停车场经营创收实施方案
- 2026年1月黑龙江高中学业水平合格考历史试卷真题(含答案详解)
- 2026年大学《中国近现代史纲要》期末考试题库(含答案)
- 2026年威海市文登区卫生健康局所属事业单位公开招聘工作人员(41人)考试参考试题及答案解析
- 2025-2026学年教科版(新教材)小学科学三年级下册期末质量检测试卷及答案(二套)
- DB11-T 509-2025 房屋建筑修缮工程定案和施工质量验收规程
- 2026国家广播电视总局直属事业单位招聘(166人)笔试模拟试题及答案解析
- 红色中国风《红楼梦》读书分享模板
评论
0/150
提交评论