基于vs2010的bmp位图的中值化处理

基于vs2010的bmp位图的中值化处理

ID:14147830

大小:2.13 MB

页数:16页

时间:2018-07-26

基于vs2010的bmp位图的中值化处理_第1页
基于vs2010的bmp位图的中值化处理_第2页
基于vs2010的bmp位图的中值化处理_第3页
基于vs2010的bmp位图的中值化处理_第4页
基于vs2010的bmp位图的中值化处理_第5页
资源描述:

《基于vs2010的bmp位图的中值化处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于MEDIAN算子的中值处理一、实验内容:本实验采用MEDIAN算子对BMP位图图像进行中值处理,实现图像的平滑和滤波效果。本实验在VisualStudio2010开发环境下完成,并且调用OpenCV库函数,采用C++编程语言。二、相关介绍:2.1BMP位图数字图像在外存储器设备中的存储形式是图像文件,图像必须按照某个已知的、公认的数据存储顺序和结构进行存储,才能使不同的程序对图像文件顺利进行打开或存盘操作,实现数据共享。图像数据在文件中的存储顺序和结构称为图像文件格式。目前广为流传的图像文件格式有许多种,常见的格式包括BMP

2、、GIF、JPEG、TIFF、PSD、DICOM、MPEG等。BMP位图文件是Windows操作系统所推荐和支持的图像文件格式,是一种将内存或显示器的图像数据不经过压缩而直接按位存盘的文件格式,所以称为位图(bitmap)文件,因其文件扩展名为BMP,故称为BMP文件格式,简称BMP文件。BMP图像文件被分成4个部分:位图文件头(BitmapFileHeader)、位图信息头(BitmapInfoHeader)、颜色表(ColorMap)和位图数据(即图像数据,DataBits或DataBody)。图2-1-1BMP位图结构其中

3、,位图文件头主要包含文件类型、大小、数据起始位置等数据,共14Byte;位图信息头主要包含图像宽(width)、高(Hight)和每像素数据位数,共40Byte;位图颜色表共1024Byte,主要针对8Bit的灰度图,24Bit真彩色图没有颜色表;位图数据,对于灰度图为各像素点灰度值在颜色表的索引值,真彩色图为各像素点的RGB三色值。需要注意的地方:第一,Windows规定一个扫描行所占的字节数必须是4的倍数,不足4的倍数则要对其进行扩充。假设图像的宽为biWidth个像素、每像素biBitCount个比特,其一个扫描行所占的真

4、实字节数的计算公式如下:DataSizePerLine=(biWidth*biBitCount/8+3)/4*4那么,不压缩情况下位图数据的大小(BITMAPINFOHEADER结构中的biSizeImage成员)计算如下:biSizeImage=DataSizePerLine*biHeight第二,一般来说,BMP文件的数据是从图像的左下角开始逐行扫描图像的,即从下到上、从左到右,将图像的像素值一一记录下来,因此图像坐标零点在图像左下角。2.2OpenCVOpenCV(opensourcecomputerversionLibr

5、ary,开源计算机视觉库),是Intel发起的是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。本实验主要使用OpenCV函数库(opencv2opencv.hpp),调用imshow函数在窗口显示图像文件。三、总体框架:图3-1-1程序总体框架本程序首先在窗口显示源图像,然后读入源图像数据,接着对源图像的位图数据进

6、行中值处理,再者将数据写入目标图像文件,最后在窗口显示目标图像。四、具体设计:4.1配置VisualStudio2010和OpenCVOpenCV是第三方的函数库,需要对VisualStudio2010做一些配置,以便在VisualStudio2010环境下调用OpenCV的函数库里的imshow函数显示图像文件。4.2main函数main函数主要是输出程序的一些基本信息和源图像的一些重要数据(宽、高、每像素位数等),以及提示和获取用户输入的源图像和目标图像的信息以便调用各功能模块子函数完成图像中值处理的功能。各功能模块子函数包

7、括:showimage子函数:显示源和目标图像;readbmp子函数:读入源图像文件;imagecom8/24子函数,对源图像数据进行中值处理;savebmp子函数,创建并保存目标图像文件;4.2showimage子函数调用OpenCV的函数库(opencv2opencv.hpp)的imshow函数在窗口显示图像文件。4.3readbmp子函数1)使用文件流类ifstream(fstream.h)定义文件输入流对象infile打开源图像文件;2)使用流对象infile的成员函数seekg定位源图像信息头,并定义信息头结构体(W

8、indows.h)变量inforhead,调用infile成员函数read读取源图像宽、高、每像素数据Bit位数等给结构体inforhead;3)读颜色表(对于8Bit位的灰度图)进内存;4)读图像数据进内存。4.4imagecom8/24子函数1)定位mask

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。