数字图像处理实验报告(第2页)
本文共计9043个字,预计阅读时长31分钟。【 字体:大 中 小 】
Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。
3.3BMP(BITMAP)位图的显示:
①一般显示方法:
1、申请内存空间用于存放位图文件
2、位图文件读入所申请内存空间中
3、在函数中用创建显示用位图,用函数创建兼容DC,用函数选择显示删除位图
但以上方法的.缺点是:1)显示速度慢;
2)内存占用大;
3)位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决);
4)在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重。
②BMP位图缩放显示:
用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering)处理、淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像、BMP位图显示方法如下:
1、打开视频函数,一般放在在构造函数中
2、申请内存空间用于存放位图文件
3、位图文件读入所申请内存空间中
4、在函数中显示位图
5、关闭视频函数,一般放在在析构函数中
以上方法的优点是:
1)显示速度快;
2)内存占用少;
3)缩放显示时图形失真小;
4)在低颜色位数的设备上显示高颜色位数的图形图形时失真小;
5)通过直接处理位图数据,可以制作简单动画。
3.4程序中用到的访问函数
Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:
1、SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB、在显示时不进行缩放处理。
2、StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上。
3、GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB、通过该函数,
可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩。
4、CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI位图。
5、CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄。
6、LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄。
7、DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,VisualC++支持该组件、VFW中的DrawDibDraw函数是一个可以替代StretchDIBits的函数、它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中、
3.5图像的几何变换
图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等。
数字图像处理实验报告(第2页)2
一、实验的目的和意义
实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。为学生进一步学习数字摄影测量、遥感和地理信息系统等专业课程以及应用图像处理解决实际问题奠定基础。
二、实验原理和方法
(1)Raw格式到BMP格式的转换:
Raw格式:Raw格式文件是按照数字图像组成的二维矩阵,将像素按行列号顺序存储在文件中。这种文件只含有图像像素数据,不含有信息头,因此,在读图像时,需要根据文件大小,计算图像所包含的行列号,或者需要事先知道图像大小(矩阵大小)。RAW文件按图像上行到下行、左列到右列顺序存储。
BMP格式:BMP文件数据区按图像上下行到上行、左列列到右列顺序存储到数据区。BMP文件由文件头、信息头、颜色表、数据区四个部分组成。
做Raw格式文件到BMP格式文件的转化,先要为BMP格式文件申请四部分的内存:文件头,位图信息头,颜色表,图象数据,然后根据输入值以及Raw文件信息,BMP格式文件信息计算出这几部分的值,赋给他们,写到BMP文件中去。
(2)灰度图象的线性拉伸:
灰度变化是点运算,将原图象的每个像素的灰度值改成线性变化之后的灰度即可。
