西安交大数字图像处理第一次作业
- 格式:doc
- 大小:614.50 KB
- 文档页数:20
数字图像处理第一章导论一.名词解释1.图像:图像是对客观对象的一种相似性的、生动性的描述或写真。
或者说图像是对客观对象的一种不完全、不精确但适当地表示。
2.数字图像:数字图像是一种空间坐标和灰度均不连续的、用离散数字(一般用整数、即0、1代码)表示的图像。
3.灰度图像:Gray scale灰度是指在数字图像中所有可能灰度级的集合。
数字图像中各个像素所具有的明暗程度由灰度值(gray level)所标识。
一般将白色的灰度值定义为255,黑色灰度值定义为0,而由黑到白之间的明暗度均匀地划分为256个等级。
由此构成灰度图像。
另外,数字图像在计算机上以位图(bitmap)的形式存在,位图是一个矩形点阵,其中每一点称为像素(pixel),像素是数字图像中的基本单位。
一幅m×n大小的图像,是由m×n个明暗度不等的像素组成的。
对于黑白图像,每个像素用一个字节数据来表示,而在彩色图像中,每个像素需用三个字节数据来表述二.问答1.数字图像处理包括哪几个层次?各层次之间有何区别和联系?答:数字图像处理层次:①狭义的图像处理;②图像识别与分析;③图像理解。
区别:狭义的图像处理:主要在图像像素级上进行的,是低级处理,处理的数据量非常大,输入输出均为图像,是图像—图像的过程,如图像缩放、图像平滑、对比度增强;图像识别与分析:通过分割和特征提取把原来以像素描述的图像转变成比较简洁的非图形式的描述,是中级处理,输入图像,输出提取的特征,是图像—数值或符号的过程,如区域分割、边界检测;图像理解:根据较抽象的描述进行解析、判断、决策,其处理过程和方法与人类的思维推理有许多类似之处,是高级处理,输入为图像,输出为规则,是图像—描述及解释的过程,如无人驾驶,自动机器人、模式识别。
联系:随着抽象程度的提高,数据量是逐渐减少的。
具体说来,原始图像数据经过一系列的处理过程,逐步转化为更有组织和用途的信息。
在这个过程中,语义不断引入,操作对象也逐步发生变化。
数字图像处理第一次作业学号:SB11009003 序号:姓名:黎小毛2.7 解:因为区域的反射率是1,可认为区域图像与光源强度一致,由光源的强度分布函数可知255≥I>0。
由于目前的图像可到256级灰度(256=28,即8位的灰度级),眼睛可以分辨8级灰度之间的差别(8=23,即3位的灰度级)。
对图像光强分成32等份(32=25,即k=5),每一等份内含眼睛分辨极限的8级灰度,可以导致眼睛可见的伪轮廓。
2.9 解:1024×1024像素、256级(8位)图像所占的位数为1024*1024*8比特,传输的数据总量和传输的图像数据比为10:8。
a)对56k的modem传输图像所需时间:t1=(1024*1024*8*10)/(56000*8)=187.2secb)对750k的DSL传输图像所需时间:t2=(1024*1024*8*10)/(750000*8)=14.0sec2.11 解:设图1中两像素为p、q,有p=q=1。
因为p不在q的4邻域内,所以S1和S2不是4邻接;因为p在q的8邻域内,所以S1和S2是8邻接;因为q在N D(p)中且N4(p)∩N4(q)没有V值像素,所以S1和S2是m 邻接。
S1 S20 0 0 0 0 0 1 10 0 1 0 0 1 0 00 0 1 0 q 1 0 00 1 1 p0 0 0 0图1 S1、S2的邻接2.15 解:(a) 当V={0,1}时,显然p、q之间不存在4邻接的通路。
p、q之间存在8邻接的通路,通路最短长度为4,通路路径见图2;p、q之间存在m邻接的通路,通路最短长度为5,通路路径见图3;3 1 2 1(q) 3 1 2 1(q)2 2 0 2 2 2 0 21 2 1 1 1 2 1 1(p)1 0 1 2 (p)1 0 1 2图2 p、q的8邻接通路图3 p、q的m邻接通路(b) 当V={1,2}时,显然p 、q 之间存在4邻接的通路、通路最短长度为6,存在三条路径见图4;p 、q 之间存在8邻接的通路,通路最短长度为4,存在两条路径见图5;p 、q 之间存在m 邻接的通路,通路最短长度为6,通路路径和4邻接的路径一样,见图4。
1.数字图像与连续图像相比具有哪些优点?连续图像f(x,y)与数字图像I(c,r)中各量的含义是什么?它们有何联系和区别? (To be compared with an analog image, what are the advantagesof a digital image? Let f(x,y) be an analog image, I(r, c) be a digital image, please giveexplanation and comparison for defined variables: f/I, x/r, and y/c)2.图像处理可分为哪三个阶段? 它们是如何划分的?各有什么特点? (We can divide image processing into 3 stages, what are they? how they are divided? What are their features?)答:低级处理---低层操作,强调图像之间的变换,是一个从图像到图像的过程;中级处理---中层操作,主要对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述,是一个从图像到数值或符号的过程;高级处理---高层操作,研究图像中各目标的性质和相互联系,得出对图像内容含义的理解以及对原来客观场景的解释;3.试从结构和功能等角度分析人类视觉中最基本的几个要素是什么?什么是马赫带效应? 什么是同时对比度?它们反映了什么共同问题? (According to the structure and function of theeyes, what are the basic elements in human vision? What is the Mach Band Effect? What is Simultaneous Contrast? What common facts can we infer from both Mach Band Effect and Simultaneous Contrast?)答:人的视觉系统趋向于过高或过低估计不同亮度区域边界的现象称为“马赫带”效应;同时对比度指的是人的视觉系统对某个区域感觉到的亮度除了依赖于它本身的强度,还与背景有关. 马赫带效应和同时对比度现象表明人所感觉到的亮度并不是强度的简单函数.4.比较说明像素邻域、连接、通路以及连通基本概念的联系与区别。
1、 完成课本习题3.2(a)(b), 课本中文版《处理》第二版的113页。
可以通过matlab 帮助你分析理解。
解:(a)s =T(r)=11+(m r ⁄)E其中,r 为输入图像亮度,s 为输出图像的相应亮度,E 控制该函数的斜率。
(b) L 是图像中灰度的级数,使m=L/2;若假定L=500,则m=250。
使用matlab 对E 分别为10,15,20,100时的情况进行分析,最后可得到如下结果:图1 matlab 分析结果2、一幅8灰度级图像具有如下所示的直方图,求直方图均衡后的灰度级和对应概率,并画出均衡后的直方图的示意图。
(计算中取整采用四舍五入方法,图中的8个不同灰度级对应的归一化直方图为[0.17 0.25 0.21 0.16 0.07 0.08 0.04 0.02])解:直方图均衡化的变换函数为s k =T (r k )=∑p r (r i )k i=0 0≤r k ≤1;k =0,1,…7 故可算得变化函数s 0计:s0计= T(r0)=0.17 s1计=0.17+0.25=0.42s2计=0.63 s3计=0.79s4计=0.86 s5计=0.94s6计=0.98 s7计=1.00但考虑到输出图像灰度是等间隔的,且与原图像灰度范围一样取8个等级,即要求s k=i/7(i=0,1,2,3…7)。
因此需要对s k计进行修正,采用四舍五入法可得s0并=1/7 s1并=3/7s2并=4/7 s3并=6/7s4并=6/7 s5并=1s6并=1 s7并=1根据s k并计算结果可知,直方图均衡化后的输出图像的灰度级仅为5个级别,即为s0=1/7 s1=3/7 s2=4/7 s3=6/7 s4=1且根据r k与s k的关联性,可计算得s k对应概率为:P s(s0=1/7)=0.17 P s(s1=3/7)=0.25P s(s2=4/7)=0.21 P s(s3=6/7)=0.23P s(s5=1)=0.14根据s k取值和对应概率,画出的均衡化后的直方图如下图所示:图2 均衡化后的直方图3. (选做题)课本习题3.6。
数字图像处理第一次作业姓名:班级:学号:提交日期:2015年3月13日摘要本次报告首先简单阐述了BMP图像格式及其相关数据结构,随后主要完成了作业要求中关于图像处理与计算的各项任务。
本次作业以Matlab 2014为平台,通过对lena.bmp,elain.bmp图像文件的编程处理,分别得到了lena.bmp图像的8到1级灰度逐级递减显示,lena.bmp图像的均值和方差,通过近邻、双线性和双三次插值法对lena.bmp进行4倍放大后得到的2048×2048尺寸图像,和对lena.bmp、elain.bmp图像分别进行水平偏移变换和旋转变换后的图像及其4倍插值放大图像。
以上任务完成后均得到了预期的结果。
1.Bmp图像格式简介。
1.1 BMP格式概述BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。
BMP文件的图像深度可选lbit、4bit、8bit及24bit。
BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
1.2 BMP格式组成典型的BMP图像文件由四部分组成:(1)位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;(2)位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;(3)调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;(4)位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。
1.3 BMP格式对应数据结构BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
1.3.1 BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
20XX年上学期《数字图像处理》复习大作业及参考答案=====================================================一、选择题(共20题)1、采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增强。
(B)A 图像整体偏暗B 图像整体偏亮C图像细节淹没在暗背景中D图像同时存在过亮和过暗背景2、图像灰度方差说明了图像哪一个属性。
(B )A 平均灰度B 图像对比度C 图像整体亮度D图像细节3、计算机显示器主要采用哪一种彩色模型( A )A、RGBB、CMY或CMYKC、HSID、HSV4、采用模板[-1 1]T主要检测( A )方向的边缘。
A.水平B.45︒C.垂直D.135︒5、下列算法中属于图象锐化处理的是:( C )A.低通滤波B.加权平均法C.高通滤波D. 中值滤波6、维纳滤波器通常用于( C )A、去噪B、减小图像动态范围C、复原图像D、平滑图像7、彩色图像增强时, C 处理可以采用RGB彩色模型。
A. 直方图均衡化B. 同态滤波C. 加权均值滤波D. 中值滤波8、__B__滤波器在对图像复原过程中需要计算噪声功率谱和图像功率谱。
A. 逆滤波B. 维纳滤波C. 约束最小二乘滤波D. 同态滤波9、高通滤波后的图像通常较暗,为改善这种情况,将高通滤波器的转移函数加上一常数量以便引入一些低频分量。
这样的滤波器叫B。
A. 巴特沃斯高通滤波器B. 高频提升滤波器C. 高频加强滤波器D. 理想高通滤波器10、图象与灰度直方图间的对应关系是 B __A.一一对应B.多对一C.一对多D.都不11、下列算法中属于图象锐化处理的是:CA.低通滤波B.加权平均法C.高通滤D. 中值滤波12、一幅256*256的图像,若灰度级数为16,则存储它所需的比特数是:( A )A、256KB、512KC、1M C、2M13、噪声有以下某一种特性( D )A、只含有高频分量B、其频率总覆盖整个频谱C、等宽的频率间隔内有相同的能量D、总有一定的随机性14. 利用直方图取单阈值方法进行图像分割时:(B)a.图像中应仅有一个目标b.图像直方图应有两个峰c.图像中目标和背景应一样大d. 图像中目标灰度应比背景大15. 在单变量变换增强中,最容易让人感到图像内容发生变化的是( C )A亮度增强觉B饱和度增强C色调增强D不一定哪种增强16、利用平滑滤波器可对图像进行低通滤波,消除噪声,但同时模糊了细节。
二、名词解释(每题2分,共10分)1、灰度直方图直方图是灰度级的函数,它表示图像中具体每种灰度级的像素个数,反映图像中每种灰度出现的概率。
2、图像增强对图像的某些特征,如边缘、轮廓、对比度等进行强调或尖锐化,以便观察或进一步分析处理。
3、中值滤波对于一个滑动窗口内N⨯M个像素按灰度级排序,用处于中间位置的像素的灰度级来代替窗口中心像素原来的灰度级。
4、图像边缘边缘是指图像中灰度发生急剧变化的区域。
5、阈值阈值是在分割时作为区分物体和背景像素的门限,大于或等于阈值的像素属于物体,而其他属于背景。
二、简答题(共70分)1、请简述两种常见的图像平滑方法及其特点。
(10)均值滤波:对于一个滑动窗口内N⨯M个像素按灰度级求平均值,用处于中间位置的像素的灰度级来代替窗口中心像素原来的灰度级。
特点:系数之和为1,系数都是正数,容易造成图像模糊。
对于一个滑动窗口内N⨯M个像素按灰度级排序,用处于中间位置的像素的灰度级来代替窗口中心像素原来的灰度级。
特点:计算复杂度高,滤波前后图像亮度发生改变,不容易产生模糊,具有良好的抗噪性能。
2、3、若使用下列模板分别对一幅灰度图像进行卷积,会达到什么样的效果?(10)(1)(2) 均值滤波,图像变模糊 (3)(4) 边缘检测 (5) 无意义 (6)(7) 边缘锐化4、对下面的图像进行8链码(0-7)的轮廓跟踪,写出跟踪得到的链码序列,并计算0 0 0 0 0 0 0 0 00 0 255 255 255 255 255 0 0 0 0 0 0 255 0 0 255 0 0 0 0 0 0 255 0 0 255 0 0 0 0 0 0 255 0 0 255 0 0 0 0 0 0 255 255 255 255 255 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0链码:(1,1)76660000773332224444 周长:1426+⨯ 面积:13(2,2)1076654322 周长:642+ 面积:104、有一幅电视图像如下,在接收时图像有若干个亮点(灰度为255),设计两种滤波方法对该图像滤波,写出滤波后的图像。
P1:(a) Load the images lena.tif and mandril.tif in Matlab. What are the sizes of the two images? Use imread() to load the images in Matlab. You can find out the size of the images by using the command size() or whos to look at the Matlab workspace.Answer:The size of lena.tif is (512,512) and size of mandril.tif is (256,256).(b) What are the values of pixels lena(29, 86) and mandril(198, 201). Note that for us (based on the notation followed in the textbook) image matrix indices start from (0, 0). In Matlab the matrix indices start from (1, 1).Answer:lena(29,86) is actually the pixel of 30th row and 87th column, so the value of pixel lena(29,86) is 105;mandril(198,201) is actually the pixel of 199th row and 202th column, so the value of pixel mandril(198,201) is 158.(c) Plot the 103rd row of lena. Plot the 69th column of mandril. Use the plot() command to plot the row/column.Answer:Plot the 103rd row of lena:Plot the 69th column of mandril:(d) Generate and draw the image shown below where the image 010020030040050060005010015020025005010015020025030020406080100120140160180200sub-block (of size 128x128) on the top-left corner comes from mandril. The rest of the image is from lena. Use imshow() to draw the image. Answer:P2:Use imread() to load the image in Matlab. You can see the initial image consists of eight bits of data for each pixel. Please create new images using 5, 4, 3, 2 and 1 bit only for each pixel. How many bits are needed to preserve image quality? Does it change from place to place in the image? How so?Answer:Image using 5 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam5=floor(cam/8);%将原来的256个灰度级按比例减少为32个灰度级cam5=cam5*8;%为32个灰度级重新分配亮度(0为黑色,31为白色)cam5=uint8(cam5);imshow(cam5);Image using 4 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam4=floor(cam/16);%将原来的256个灰度级按比例减少为16个灰度级cam4=cam4*16;%为16个灰度级重新分配亮度(0为黑色,15为白色)cam4=uint8(cam4);imshow(cam4);Image using 3 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam3=floor(cam/32);%将原来的256个灰度级按比例减少为8个灰度级cam3=cam3*32;%为8个灰度级重新分配亮度(0为黑色,7为白色)cam3=uint8(cam3);imshow(cam3);Image using 2 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam2=floor(cam/64);%将原来的256个灰度级按比例减少为4个灰度级cam2=cam2*64;%为4个灰度级重新分配亮度(0为黑色,3为白色)cam2=uint8(cam2);imshow(cam2);Image using 1 bit for each pixel:程序代码如下:campusdrive=imread('campusdrive.tif');cam=double(campusdrive);cam1=floor(cam/64);%将原来的256个灰度级按比例减少为2个灰度级cam1=cam1*64;%为2个灰度级重新分配亮度(0为黑色,1为白色)cam1=uint8(cam1);imshow(cam1);观察发现,5bits基本可以保持图像质量,使之不出现伪轮廓,少于5bits图像会出现伪轮廓;P3:Subtracting to get image change. Download images carvision1.tif and carvision2.tif from /~qbhe/dip/.(a)Load the two images in Matlab. Determine the line length and displaythe images.Answer:The length of the two images is 640;To show the two images,Carvision1:Carvision2:(b)Compare the two images and note any differences. Answer:The location of the two cars in the images is different.(c)Subtract the second image from the first and display the difference tohighlight any changes in the image. What parts of the image arehighlighted, and why?Answer:car1=imread('carvision1.tif');car2=imread('carvision2.tif');dcar1=double(car1);dcar2=double(car2);dcar=dcar1-dcar2;car=abs(dcar);car=uint8(car);imshow(car>100);imshow(im2bw(car));车辆前后不同位置被高亮显示,因为两幅图片中车位置不同,不同处会被高亮显示。
《数字图像处理》课后作业(2015)第2章2.5一个14mm⨯14mm的CCD摄像机成像芯片有2048⨯2048个像素,将它聚焦到相距0.5m远的一个方形平坦区域。
该摄像机每毫米能分辨多少线对?摄像机配备了一个35mm镜头。
(提示:成像处理模型见教材图2.3,但使用摄像机镜头的焦距替代眼睛的焦距。
)2.10高清电视(HDTV, High Definition TV )使用1080条水平电视线(TV Line)隔行扫描来产生图像(每隔一行在显像管表面画出一条水平线,每两场形成一帧,每场用时1/60秒,此种扫描方式称为1080i,即1080 interlace scan;对应的有1080p,即1080 progressive scan,逐行扫描)。
图像的宽高比是16:9。
水平电视线数(水平行数)决定了图像的垂直分辨率,即一幅图像从上到下由多少条水平线组成;相应的水平分辨率则定义为一幅图像从左到右由多少条垂直线组成,水平分辨率通常正比于图像的宽高比。
一家公司已经设计了一种图像获取系统,该系统由HDTV图像生成数字图像,彩色图像的每个像素都有24比特的灰度分辨率(红、绿、蓝分量各8比特)。
请计算不压缩时存储90分钟的一部HDTV电影所需要的存储容量。
2.22图像相减常用于在产品装配线上检测缺失的元件。
方法是事先存储一幅对应于正确装配的产品图像,称为“金”图像(“golden” image),即模板图像。
然后,在同类型产品的装配过程中,采集每一装配后的产品图像,从中减去上述模板图像。
理想情况下,如果产品装配正确,则两幅图像的差值应为零。
而对于缺失元件的产品,其图像与模板图像在缺失元件区域不同,两幅图像的差值在这些区域就不为零。
在实际应用中,您认为需要满足哪些条件这种方法才可行?第3章3.5在位平面分层中,(a)如果将低阶位平面的一半设为零值,对一幅图像的直方图大体上有何影响?(b)如果将高阶位平面的一半设为零值,对一幅图像的直方图又有何影响?3.6试解释为什么离散直方图均衡化技术一般不能得到平坦的输出直方图。
数字图像处理第一次作业姓名:班级:学号:提交日期:2015年3月13日摘要本次报告首先简单阐述了BMP图像格式及其相关数据结构,随后主要完成了作业要求中关于图像处理与计算的各项任务。
本次作业以Matlab 2014为平台,通过对lena.bmp,elain.bmp图像文件的编程处理,分别得到了lena.bmp图像的8到1级灰度逐级递减显示,lena.bmp图像的均值和方差,通过近邻、双线性和双三次插值法对lena.bmp进行4倍放大后得到的2048×2048尺寸图像,和对lena.bmp、elain.bmp图像分别进行水平偏移变换和旋转变换后的图像及其4倍插值放大图像。
以上任务完成后均得到了预期的结果。
1.Bmp图像格式简介。
1.1 BMP格式概述BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。
它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。
BMP文件的图像深度可选lbit、4bit、8bit及24bit。
BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。
1.2 BMP格式组成典型的BMP图像文件由四部分组成:(1)位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息;(2)位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息;(3)调色板,这个部分是可选的,有些位图需要调色板,有些位图,比如真彩色图(24位的BMP)就不需要调色板;(4)位图数据,这部分的内容根据BMP位图使用的位数不同而不同,在24位图中直接使用RGB,而其他的小于24位的使用调色板中颜色索引值。
1.3 BMP格式对应数据结构BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
1.3.1 BMP文件头(14字节)BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。
其结构定义如下:typedef 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位图信息头数据用于说明位图的尺寸等信息。
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; // 位图压缩类型,必须是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;// 位图显示过程中重要的颜色数(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来确定:当biBitCount=1,4,8时,分别有2,16,256个表项;当biBitCount=24时,没有颜色表项。
位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO {BITMAPINFOHEADER bmiHeader; // 位图信息头RGBQUAD bmiColors[1]; // 颜色表} BITMAPINFO;1.3.4 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。
位图的一个像素值所占的字节数:当biBitCount=1时,8个像素占1个字节;当biBitCount=4时,2个像素占1个字节;当biBitCount=8时,1个像素占1个字节;当biBitCount=24时,1个像素占3个字节,按顺序分别为B,G,R;Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充。
2.把lena512*512图像灰度级逐级递减8-1显示。
(1)问题分析:本题中对图像进行的操作是直接灰度变换。
首先利用imread函数读入lena512.bmp,得到图像的灰度矩阵I,之后对灰度矩阵中的每个元素进行操作,即阵列操作。
将灰度矩阵的每个元素值除以二,取整后将结果转换为无符号8位数,既得到灰度级为7的图像,最后利用imshow函数输出显示图像。
同理可得到灰度级为6-1 的图像。
对应源程序lena.m(2)MATLAB函数:A=imread(‘filename’)用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG。
读进来的是一个二维数组,存放在矩阵A中。
调用格式:A=imread(filename,fmt)[X,map]=imread(filename,fmt)imshow(A)imshow是matlab中显示图像的函数。
调用格式:imshow(I,n)imshow(I,[low high])用指定的灰度范围[low high]显示灰度图像I。
显示结果,图像中灰度值等于或低于low的都将用黑色显示,而灰度值大于等于high的都显示为白色,介于low和high之间的用其灰度级的默认值的中间色调显示。
(3)处理结果:8灰度级:6灰度级:4灰度级:2灰度级:(4)结果分析:对一幅512*512,256 个灰度级的具有较多细节的图像,保持空间分辨率不变,仅将灰度级数依次递减为128、64、32、16、8、4、2,比较得到的结果就可以发现灰度级数对图像的影响。
前四张图灰度级数较高,图像基本看不出什么变化。
当灰度级数继续降低,则在灰度缓变区常会出现一些几乎看不出来的非常细的山脊状结构。
灰度级数越低,越不能将图像的细节刻画出来。
对比实验中处理过的图像,可以发现,虽然都是灰度图,但是灰度范围越大则图像显示出的色彩越丰富。
3.计算lena512图像的均值方差。
(1)问题分析:首先通过imread()函数读入图像文件到灰度矩阵A中,然后利用mean2()函数和std2()函数计算灰度矩阵(即图像)的均值和标准差,再由标准差平方得到方差。
对应源程序:lena2.m(2)MATLAB函数:mean2()MATLAB中提供均值计算函数mean()和mean2()。
mean2( A ),用于对整一个矩阵求像素平均值。
调用格式:u=mean2(A)std2()MATLAB中提供标准差计算函数std()和std2()。
调用格式:s=std2(A)(3)处理结果:均值u=95.6564 方差s^2=1.9273e+03(4)结果分析:经过MATLAB运算,得到图像lena512.bmp的均值约为95.6564,标准差约为43.9012,方差是标准差的平方,约为1927.3。
方差越大,图像的对比度越大,可以显示的细节就越多。
4.把lena图像用近邻、双线性和双三次插值法zoom到2048*2048。
(1)问题分析:插值算法是估计在图象像素间的某个位置的像素的取值方法。
最近邻点插值法:在待插像素的周围四邻像素中,距离待求插像素最近的像素灰度赋给待插像素。
该方法最简单,但校正后存在灰度不连续性,图像有明显锯齿状。
双线性插值算法:双线性插值算法输出的图像的每个像素都是原图中四个像素(2×2)运算的结果,这种算法极大地消除了锯齿现象。
双三次插值算法:双三次插值算法是上一种算法的改进算法,它输出图像的每个像素都是原图16个像素(16×16)运算的结果。
这种算法是一种很常见的算法,普遍用在图像编辑软件、打印机驱动和数码相机上。
本题先通过imread()函数读入图像文件,然后利用imresize()函数将图像分别利用三种插值方法放大到2048*2048。
对应源程序:lena3.m(2)MATLAB函数:imresize()函数用于对图像做缩放处理。
调用格式:B = imresize(A, [numrows numcols],method)其中,numrows和numcols分别指定目标图像的高度和宽度。
显而易见,由于这种格式允许图像缩放后长宽比例和源图像长宽比例不相同,因此所产生的图像有可能发生畸变。
method参数用于指定在改变图像尺寸时所使用的算法,可以为一下几种:'nearest':这个参数也是默认的,即改变图像尺寸时采用最近邻插值算法;'bilinear':采用双线性插值算法;'bicubic':采用双三次插值算法;(3)处理结果:原始图像:最近邻插值法:双线性插值法:双三次插值法:(4)结果分析:最近邻插值、双线性插值与双三次差值这三种方法之间的区别主要在于点周围像素序列的取法不同。