




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字图像与视频处理课程第一次作业姓名: 吴佳林 班级: 自动化12 学号: 2110504047 日期: 2014.3.17 摘 要本次报告首先简单阐述了BMP图像格式及其相关数据结构,随后主要完成了作业要求中关于图像处理与计算的各项任务。本次作业以Matlab 2013a为平台,通过对lena.bmp,elain.bmp图像文件的编程处理,分别得到了lena.bmp图像的8到1级灰度逐级递减显示,lena.bmp图像的均值和方差,通过近邻、双线性和双三次插值法对lena.bmp进行4倍放大后得到的2048×2048尺寸图像,和对lena.bmp、elain.bmp图像分别进行水平s
2、hear变换和旋转变换后的图像及其4倍插值放大图像。以上任务完成后均得到了预期的结果。 正 文1. BMP图像格式简介1.1 BMP格式概述BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。1.2 BMP格式组成典型的BMP图像文件由四部分组成:(1):位图头文件数据结构,
3、它包含BMP图像文件的类型、显示内容等信息;(2):位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;(3):调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;(4):位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。1.3 BMP格式对应数据结构BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。1.3.1 BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。其结构定义如下:type
4、def struct tagBITMAPFILEHEADER WORD bfType; / 位图文件的类型,必须为BM(1-2字节) DWORD bfSize; / 位图文件的大小,以字节为单位(3-6字节) WORD bfReserved1; / 位图文件保留字,必须为0(7-8字节) WORD bfReserved2; / 位图文件保留字,必须为0(9-10字节) DWORD bfOffBits; / 位图数据的起始位置,以相对于位图(11-14字节) / 文件头的偏移量表示,以字节为单位 BITMAPFILEHEADER;1.3.2 位图信息头(40字节)BMP位图信息头数据用于说明位图
5、的尺寸等信息。typedef struct tagBITMAPINFOHEADER DWORD biSize; / 本结构所占用字节数(15-18字节) LONG biWidth; / 位图的宽度,以像素为单位(19-22字节) LONG biHeight; / 位图的高度,以像素为单位(23-26字节) WORD biPlanes; / 目标设备的级别,必须为1(27-28字节) WORD biBitCount;/ 每个像素所需的位数,必须是1(双色),(29-30字节) / 4(16色),8(256色)16(高彩色)或24(真彩色)之一 DWORD biCompression; / 位图压
6、缩类型,必须是 0(不压缩),(31-34字节) / 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一 DWORD biSizeImage; / 位图的大小(其中包含了为了补齐行数是4的倍数而添加的空字节),以字节为单位(35-38字节) LONG biXPelsPerMeter; / 位图水平分辨率,每米像素数(39-42字节) LONG biYPelsPerMeter; / 位图垂直分辨率,每米像素数(43-46字节) DWORD biClrUsed;/ 位图实际使用的颜色表中的颜色数(47-50字节) DWORD biClrImportant;/ 位图显示过程中重要的颜色数
7、(51-54字节) BITMAPINFOHEADER;1.3.3 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下:typedef struct tagRGBQUAD BYTE rgbBlue;/ 蓝色的亮度(值范围为0-255) BYTE rgbGreen; / 绿色的亮度(值范围为0-255) BYTE rgbRed; / 红色的亮度(值范围为0-255) BYTE rgbReserved;/ 保留,必须为0 RGBQUAD; 颜色表中RGBQUAD结构数据的个数有biBitCount来确定: 当biBitC
8、ount=1,4,8时,分别有2,16,256个表项; 当biBitCount=24时,没有颜色表项。 位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader; / 位图信息头 RGBQUAD bmiColors1; / 颜色表 BITMAPINFO; 1.3.4 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右, 扫描行之间是从下到上。位图的一个像素值所占的字节数:当biBitCount=1时,8个像素占1个字节;当biBitCount=4时,2个
9、像素占1个字节;当biBitCount=8时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节,按顺序分别为B,G,R;Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位), 不足的以0填充。2. 把lena 512*512图像灰度级逐级递减8-1显示2.1 实验原理给定的lena.bmp是一幅8位灰阶的图像,即有256个灰度色。则K位灰阶图像中某像素的灰度值(以阶色为基准)与原图同像素的灰度值(以256阶色为基准)的对应关系为: (1.1)(1.1)式中函数为向下取整操作。取一确定k值,对原图进行上式运算即得降阶后的k位灰阶图像矩阵。值得注意的是
10、,此时的白色灰度值变为而不一定是255,这一点在显示图像时需要考虑。2.2 实验方法首先通过imread()函数读入lena.bmp并转换成double型放至变量lena。再依照(1.1)式对lena矩阵进行灰度降阶运算,将结果保留至lena_alter变量。最后利用imshow()函数及其自适应灰度显示功能将lena_alter(以256阶色基准)显示出来。8阶至1阶图像整体呈现由for循环实现。2.3 实验结果程序运行结果如图1.1所示:图1.1由上图可以看出,在灰度级下降到5之前,肉眼几乎感觉不出降阶后图像发生的变化。但从4灰度级开始,肉眼明显能感觉到图像有稍许的不连续,与原图灰度渐变区
11、对应位置灰度不连续的现象表现更加明显。随着灰度阶数的继续下降,图像开始出现大片的伪轮廓,最终的极端情况是退化为只有黑白两色的二值化图像。由此可以得出,图像采样的灰度阶数越高,肉眼看去更接近与现实情况。3.计算lena 图像的均值与方差3.1 实验原理对分辨率为的灰度图像,其均值和方差分别为: (2.1) (2.2)3.2 实验方法通过imread()函数读入lena.bmp并转换成double型放至变量lena,再利用MATLAB中提供的求二维矩阵全体元素均值和方差的函数mean2()和std2()分别求取lena的均值和方差并存入lena_avg和lena_var,最后通过fpringtf(
12、)输出结果。3.3 实验结果图像的均值为:99.051图像的方差为:2796.043在这里,图像的均值可反应图像整体的明暗程度,而方差可以反应图像整体的对比度情况。4.把lena图像用近邻、双线性和双三次插值法zoom到2048*2048 4.1 实验原理图像插值就是利用已知邻近像素点的灰度值来产生未知像素点的灰度值,以便由原始图像再生出具有更高分辨率的图像。典型方法包括最近邻、双线性、双三次三种方法。最邻近插值法就是将待插值点像素的灰度值取为其相对于原图坐标中最邻近像素点的灰度值。这种方法比较简单,计算速度快,但效果不好,会产生严重的“棋盘格”效应。双线性插值法是将待插值点像素的灰度值取为其
13、在原图坐标中距离最近的4个像素点灰度值的加权和。具体关系式为: (3.1)其中为待插值点在原图中的相对整数坐标,为待插值点在原图中的相对小数坐标。双线性插值法可以比较平滑得对图像进行插值,效果令人满意,但计算速度较最邻近法有所下降。双三次插值是一种更加复杂的插值方式,其插值函数为: (3.2)通过待插值像素点周围 9 个点的灰度值,可以结合导数信息列出线性方程组求解系数向量。双三次插值法较双线性插值法能显示更多的细节,效果更好,但计算开销较大,速度不理想。4.2 实验方法为使实验代码更具模块化且易于修改和维护,这里将三种插值算法封装为功能函数(分别为my_imresize_n(),my_imr
14、esize_b(),my_imresize_c() )供插值集成函数my_imresize()格式化调用。在最邻近法的实现中,通过对待插值点的相对坐标取四舍五入得到最邻近像素点灰度值,完成了对目标点像素的赋值。在双线性法的实现中,待插值点的灰度值由(3.1)式计算得出。在双三次法的实现中,待插值点的灰度值由(3.2)式计算得出,而(3.2)式中的插值函数系数由待插值点最近四点以及右下侧五点共九个点的灰度值带入含有微分信息的16元1次方程组得出。以上三种方法均通过扩充原图矩阵边缘行列数规避了坐标索引溢出或不为非负值的问题。4.3 实验结果对lena.bmp图像利用三种插值方法得到如图2.1所示结
15、果:图2.1放大后细节表现如图2.2所示:图2.2由图2.2可清楚看到,经过最邻近插值后的图像产生的“棋盘格”效应,而后两种插值方法表现的效果比较平滑,令人满意。三种方法在实验中运行的时间分别为:nearest :5.228sbilinear :9.880sbicubic :34.299s可见双三次插值的时间开销最大,双线性其次,最邻近最小。在MATLAB中也有这三种插值方法的功能函数,且运行时间比以上结果快得多。原因是自己在实现算法的过程中运用了较多的循环结构,使得在MATLAB的环境下程序效率低下。5. 把lena和elain图像分别进行水平shear和旋转30度,并采用用近邻、双线性和双
16、三次插值法zoom到2048*20485.1 实验原理二维仿射变换是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”和“平行性”仿射变换可以通过一系列的原子变换的复合来实现,包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和错切(Shear)等。 二维仿射变换可以用一个3×3的矩阵来表示,其最后一行为(0 0 1)。该变换矩阵将原坐标(v,w)变换为新坐标(x,y)。设仿射矩阵为T,则新坐标与原坐标的关系为: (4.1)对于shear水平变换, (4.2)对于旋转变换, (4.3)5.2 实验方法依照式(4.1)和(4
17、.2)编写shear变换功能函数,函数输入参数为uint8型图像矩阵和shear变换系数a,输出参数为shear变换后的uint8型图像。依照式(4.1)和(4.3)编写旋转变换功能函数,函数输入参数为uint8型图像矩阵和旋转角度degree,输出参数为旋转变换后的uint8型图像。与shear变换函数中不同的是,由于变换矩阵T是以图像原点(即左上角)为旋转中心,若直接运用(4.3)式则会造成部分图像超出边界从而缺失,解决方法为将(4.1)式变为 (4.4)且(4.3)式变为 (4.5)即可将旋转中心变换到图像矩阵中心。对仿射变换后的插值处理与4中步骤相同。5.3 实验结果对lena.bmp进行shear变换(系数为0.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动与糖分摄入关系考核试卷
- 印刷品与城市文化的关联考核试卷
- 印刷油墨耐化学品降解性研究考核试卷
- 燃烧效率评估考核试卷
- 用户增长预算分配策略考核试卷
- 收购大豆管理办法
- 扭亏增盈管理办法
- 林木验收管理办法
- 引进物业管理办法
- 林权抵押管理办法
- 2024年安徽省金寨县事业单位公开招聘辅警考试题带答案分析
- 2025年河北省专技人员继续教育公需课(新课程答案七)
- 外电场驱动下带电脂质体药物颗粒靶向输送的机制与应用研究
- ktv合作分红协议书
- 党员结对共建协议书
- 体育设施工程施工组织设计
- 分析国外非物质文化遗产数字化保护的成功经验及其对国内相关实践的借鉴意义
- 户外标志、标识、广告牌设计安装项目方案投标文件(技术方案)
- 压缩机与膨胀机课件-压缩机与膨胀机的气流理论
- 钓鱼人考试试题及答案
- 毕节社工考试试题及答案
评论
0/150
提交评论