(完整word版)数字图像处理图像编码
- 格式:doc
- 大小:1.41 MB
- 文档页数:23
一、霍夫曼编码(Huffman Codes)最佳编码定理:在变长编码中,对于出现概率大的信息符号编以短字长的码,对于出现概率小的信息符号编以长字长的码,如果码字长度严格按照符号出现概率大小的相反的顺序排列,则平均码字长度一定小于按任何其他符号顺序排列方式的平均码字长度。
霍夫曼编码已被证明具有最优变长码性质,平均码长最短,接近熵值。
霍夫曼编码步骤:设信源X 有m 个符号(消息)⎭⎬⎫⎩⎨⎧=m m p x p p x x X ΛΛ2121,1. 1. 把信源X 中的消息按概率从大到小顺序排列,2. 2. 把最后两个出现概率最小的消息合并成一个消息,从而使信源的消息数减少,并同时再按信源符号(消息)出现的概率从大到小排列;3. 3. 重复上述2步骤,直到信源最后为⎭⎬⎫⎩⎨⎧=o o o o o p p x x X 2121为止;4. 4. 将被合并的消息分别赋予1和0,并对最后的两个消息也相应的赋予1和0;通过上述步骤就可构成最优变长码(Huffman Codes)。
例:110005.0010010.000015.01120.00125.01025.0654321x x x x x x P Xi 码字编码过程则平均码长、平均信息量、编码效率、冗余度为分别为:%2%9842.2)05.0log 05.01.0log 1.015.0log 15.02.0log 2.025.0log 25.02(45.205.041.0415.0320.0225.022===⨯+⨯+⨯+⨯+⨯⨯-==⨯+⨯+⨯+⨯+⨯⨯=Rd H N η二 预测编码(Predictive encoding )在各类编码方法中,预测编码是比较易于实现的,如微分(差分)脉冲编码调制(DPCM )方法。
在这种方法中,每一个象素灰度值,用先前扫描过的象素灰度值去减,求出他们的差值,此差值称为预测误差,预测误差被量化和编码与传送。
接收端再将此差值与预测值相加,重建原始图像象素信号。
胡学龙、许开宇编著《数字图像处理》思考题与习题参考答案第1 章概述1。
1 连续图像和数字图像如何相互转换?答:数字图像将图像看成是许多大小相同、形状一致的像素组成。
这样,数字图像可以用二维矩阵表示.将自然界的图像通过光学系统成像并由电子器件或系统转化为模拟图像(连续图像)信号,再由模拟/数字转化器(ADC)得到原始的数字图像信号。
图像的数字化包括离散和量化两个主要步骤。
在空间将连续坐标过程称为离散化,而进一步将图像的幅度值(可能是灰度或色彩)整数化的过程称为量化。
1。
2 采用数字图像处理有何优点?答:数字图像处理与光学等模拟方式相比具有以下鲜明的特点:1.具有数字信号处理技术共有的特点。
(1)处理精度高。
(2)重现性能好.(3)灵活性高。
2.数字图像处理后的图像是供人观察和评价的,也可能作为机器视觉的预处理结果.3.数字图像处理技术适用面宽。
4.数字图像处理技术综合性强。
1。
3 数字图像处理主要包括哪些研究内容?答:图像处理的任务是将客观世界的景象进行获取并转化为数字图像、进行增强、变换、编码、恢复、重建、编码和压缩、分割等处理,它将一幅图像转化为另一幅具有新的意义的图像。
1.4 讨论数字图像处理系统的组成.列举你熟悉的图像处理系统并分析它们的组成和功能。
答:如图1.8,数字图像处理系统是应用计算机或专用数字设备对图像信息进行处理的信息系统.图像处理系统包括图像处理硬件和图像处理软件。
图像处理硬件主要由图像输入设备、图像运算处理设备(微计算机)、图像存储器、图像输出设备等组成。
软件系统包括操作系统、控制软件及应用软件等。
图1。
8 数字图像处理系统结构图11。
5 常见的数字图像处理开发工具有哪些?各有什么特点?答.目前图像处理系统开发的主流工具为 Visual C++(面向对象可视化集成工具)和 MATLAB 的图像处理工具箱(Image Processing Tool box)。
两种开发工具各有所长且有相互间的软件接口。
1图像的特点:1)直观形象2)易懂3)信息量大2 图像的分类:1)按灰度分类:二值图像,多灰度图像2)按色彩分类:单色图像,动态图像3)按运动分类:静态图像,动态图像4)按时空分布分类:二维图像,三维图像3 数字图像处理的主要内容:1)图像获取2)图像变换3)图像增强4)图像复原5)图像编码6)图像分析7)图像识别8)图像理解4数字图像处理方法:1)空域法2)变换域法5什么是数字图像的采样和量化?采样:将模拟图像在空间上连续的点按照一定的规则变换成离散点的操作。
量化:由于采样图像被分割成空间上离散的像素,但其灰度是连续的,还不能用计算机进行处理,所以要对采样后的图像进行量化,即将连续的像素灰度值转换成离散的整数值的过程。
6图像像素间的邻接、连接和连通的区别?邻接:两个像素是否邻接就看它是否接触,一个像素和在它邻域中的像素是邻接的。
邻接仅仅考虑了像素间的空间关系。
连接:对两个像素,要确定它们是否连接,要考虑两点:①空间上要邻接;②灰度值要满足某个特点的相似准则第二章1 试述图像采集系统的结构及其各部分的功能?2 连续图像随机过程可以用哪些数字特征来描述?概率密度,一阶矩或平均值,二阶矩或自相关函数,自协方差,方差3 为什么说只要满足采样定理,就可以有离散图像无失真的重建元连续图像?这是由图像的连续性决定的,由图像上某一点的值可以还原出该点的一个小邻域里的值,这个图像连续性越好,这个邻域就可以越大,抽样次数可以很少就可以无失真还原。
而抽样定理对应这个邻域最小的情况即抽样次数最多的情况,大概是每周期两个样本4与标量量化相比,向量量化有哪些优势?合理地利用样本间的相关性,减少量化误差提高压缩率,5 Matlab图像处理工具箱提供了哪几类类型的数字图像?它们之间能否转换?如果可以如何转换?二进制图像,索引图像,灰度图像,多帧图像,RGB图像,它们之间可以相互转换,转换函数(23页6 数字图像的空间分辨率和采样间隔有什么联系?采样间隔是决定图像分辨率的主要参数1 FFT的基本思想是什么??利用DFT系数的特性,合并DFT运算中的某些项,把长序列DFT变成短序列DFT,从而减少其运算量。
数字图像处理每章课后题参考答案第一章和第二章作业:1.简述数字图像处理的研究内容。
2.什么是图像工程?根据抽象程度和研究方法等的不同,图像工程可分为哪几个层次?每个层次包含哪些研究内容?3.列举并简述常用表色系。
1.简述数字图像处理的研究内容?答:数字图像处理的主要研究内容,根据其主要的处理流程与处理目标大致可以分为图像信息的描述、图像信息的处理、图像信息的分析、图像信息的编码以及图像信息的显示等几个方面,将这几个方面展开,具体有以下的研究方向:1.图像数字化,2.图像增强,3.图像几何变换,4.图像恢复,5.图像重建,6.图像隐藏,7.图像变换,8.图像编码,9.图像识别与理解。
2.什么是图像工程?根据抽象程度和研究方法等的不同,图像工程可分为哪几个层次?每个层次包含哪些研究内容?答:图像工程是一门系统地研究各种图像理论、技术和应用的新的交叉科学。
根据抽象程度、研究方法、操作对象和数据量等的不同,图像工程可分为三个层次:图像处理、图像分析、图像理解。
图像处理着重强调在图像之间进行的变换。
比较狭义的图像处理主要满足对图像进行各种加工以改善图像的视觉效果。
图像处理主要在图像的像素级上进行处理,处理的数据量非常大。
图像分析则主要是对图像中感兴趣的目标进行检测和测量,以获得它们的客观信息从而建立对图像的描述。
图像分析处于中层,分割和特征提取把原来以像素描述的图像转变成比较简洁的非图形式描述。
图像理解的重点是进一步研究图像中各目标的性质和它们之间的相互联系,并得出对图像内容含义的理解以及对原来客观场景的解释,从而指导和规划行为。
图像理解主要描述高层的操作,基本上根据较抽象地描述进行解析、判断、决策,其处理过程与方法与人类的思维推理有许多相似之处。
第三章图像基本概念1.图像量化时,如果量化级比较小时会出现什么现象?为什么?答:当实际场景中存在如天空、白色墙面、人脸等灰度变化比较平缓的区域时,采用比较低的量化级数,则这类图像会在画面上产生伪轮廓(即原始场景中不存在的轮廓)。
《数字图像处理》课程教学大纲Digital Image Processing一、课程说明课程编码:045236001 课程总学时(理论总学时/实践总学时):51(42/9),周学时:3,学分:3,开课学期:第6学期。
1.课程性质:专业选修课2.适用专业:电子信息与技术专业3.课程教学目的和要求《数字图像处理》是信号处理类的一门重要的专业选修课,通过本课程的学习,应在理论知识方面了解和掌握数字图像的概念、类型,掌握数字图像处理的基本原理和基本方法:图像变换、图像增强、图像编码、图像的复原和重建。
并通过实验加深理解数字图像处理的基本原理。
4.本门课程与其他课程关系本课程的先修课程为:数字信号处理和应用5.推荐教材及参考书推荐教材:阮秋琦,《数字图像处理学》(第二版),电子工业出版社,2007年参考书(1)姚敏等,《数字图像处理》,机械工业出版社,2006年(2)何东健,《数字图像处理》(第二版),西安电子工业出版社,2008年(3)阮秋琦,《数字图像处理基础》,清华大学出版社,2009年(4) (美)Rafael C. Gonzalez著,阮秋琦译,《数字图像处理》(第二版),电子工业出版社,2007年6.课程教学方法与手段主要采用课堂教学的方式,通过多媒体课件进行讲解,课外作业,答疑辅导。
并辅以适当的实验加深对数字图像处理的理解。
7.课程考核方法与要求本课程为考查课课程的实验成绩占学期总成绩的50%,期末理论考查占50%;考查方式为笔试。
8.实践教学内容安排实验一:图像处理中的正交变换实验二:图像增强实验三:图像复原详见实验大纲。
二、教学内容纲要与学时分配(一)数字图像处理基础(3课时)1.主要内容:图像处理技术的分类,数字图像处理的特点,数字图像处理的主要方法及主要内容,数字图像处理的硬件设备,数字图像处理的应用,数字图像处理领域的发展动向2.基本要求:了解图像处理技术的分类和特点,数字图像处理的主要方法及主要内容,熟悉数字图像处理的硬件设备。
数字图像处理上机实习报告(DIP4----DIP7)学生姓名:杜坤班级:071123学号:20121003699指导老师:傅华明DIP-4 图像编码一.题目要求对图实施费诺-香农编码和解码,计算图像熵,平均码长和冗余度。
二.算法设计1.测试脚本的程序框图2.编码程序框图读入图像的直方图,将图像的灰度值按照概率大小排序,按照香农编码的规则编码。
香农编码将概率由大到小,由上到下排成一排,然后分为两组。
是将大的一组概率赋值为0,概率小的一组赋值为1,这是赋值的原则。
然后依次的重复,直到每组只有一种输入元素为止。
3.解码程序框图三.实现代码1.脚本文件clear allload matp = impr(a); %统计概率code = FanoCodeInit(p); %Fano编码初始化code = FanoEncoder(code);%Fano编码outstream = FanoCodeStream(a,code); %输出data = FanoDecoder(outstream,code);%解码data = reshape(data,8,8); %恢复8*8的形状data = data'; %转置I = abs(p.*log2(p));disp('图像的熵为:');H = sum(I(:)) %计算熵disp('图像的平局码长为:')B = FanoCodeLength(code); %求平均长度disp('编码冗余度为:');r = B/H - 1 %求冗余disp('编码效率为:')e = H/B %求编码效率if isequal(a,data)msgbox('解码后的数据和输入的数据完全吻合');end2.统计灰度的概率function [p]= impr(f)%概率统计[m,n] = size(f);graymax = max(f(:)); %找出灰度最大值,划定统计范围p = zeros(1,graymax + 1);for i = 1:mfor j = 1:nx = f(i,j) + 1;p(x) = p(x) + 1;endendp = p/(m*n);End3.码字的初始化function [code] = FanoCodeInit(p)%FanoShano码字初始化[m,n] = size(p);for i = 1:ncode(i).gray = i - 1;code(i).p = p(i);code(i).str = '';end%冒泡法排序for i = 1:nfor j = 1:n-iif code(j).p > code(j+1).ptemp = code(j);code(j) = code(j+1);code(j+1) = temp;endendendend4.编码function [pin] = FanoEncoder(pin)%FanoShano编码[m,n] = size(pin);flag = 1;while (flag)start = 1;stop = 1;temp = pin(1);for i = 1:n-1if isequal(temp.str,pin(i+1).str)stop = stop + 1;elseif stop == startstart = i + 1;stop = start;temp = pin(i+1);elsebreak;endendif stop ~= startpin = FanoCodeCat(pin,start,stop);elseif i == n-1flag = 0; %退出while(flag)的循环endendendend5.输出码流function [outstream] = FanoCodeStream(data,code) [m,n] = size(data);len = length(code);outstream = '';for i = 1:mfor j = 1:nfor k = 1:lenif code(k).gray == data(i,j);outstream = [outstream,code(k).str];break;endendendendend6.解码function [data] = FanoDecoder(instream,code)len = length(instream);str = '';gray = 0;flag = 0;data = 0;for i = 1:len[gray,flag] = LookUp(code,[str,instream(i)]); if flagdlen = length(data);data(dlen+1) = gray;str = '';elsestr = [str,instream(i)];endenddlen = length(data);data = data(2:dlen);end7.搜索码字function [data,flag] = LookUp(code,str)len = length(code);flag = 0;data = 0;for i = 1:lenif isequal(str,code(i).str)data = code(i).gray;flag = 1;break;endendend8.获得平均码长function [len_ave] = FanoCodeLength(code)len = length(code);len_ave = 0;for i = 1:lenlen_ave = len_ave + code(i).p*length(code(i).str);endend四.结果分析经过检验之后可以看出,将图像数据进行编码,然后再解码得到的数据和原图像数据完全一致,说明此程序成功编码解码,达到了题目的要求。
算法改进:在编码的时候可以直接将灰度值作为码字的下标,提高编码的效率。
DIP-5 图像分割一.题目要求对下图施加高斯噪声,采用LoG 算子对含噪声的图象实施边缘分割,找出该图象的最佳边缘。
二.算法设计在对图像处理的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些感兴趣的部分常称为目标或对象,它们一般对应图像中特定的、具有独特性质的区域。
图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内表现出一致性或相似性,而在不同区域间表现出明显的不同,即在一幅图像中把目标从背景中分离出来,以便于进一步处理。
图像分割就是指把图像分成互不重叠的区域并提取出感兴趣目标的技术。
像的分割有很多种类,边缘分割也有很多种类,LoG 算子是其中一类。
由于在成像时,一个给定像素所对应的场景点,它的周围点对该点的贡献的光强大小呈正态分布,所以平滑函数应能反映不同远近的周围点对给定像素具有不同的平滑作用,因此,平滑函数采用正态分布的高斯函数,即式中,s 是方差。
用h(x ,y)对图像f(x ,y)的平滑可表示为g(x ,y)=h(x ,y)*f(x ,y)如果令r 是离原点的径向距离,即r2=x2+y2,转换,然后对图像g(x ,y)采用拉普拉斯算子进行边缘检测,可得),(*),(),(*e )],(*),([),(224222222y x f y x h y x f r y x f y x h y x g r ∇=⎪⎪⎭⎫⎝⎛--=∇=∇-σσσ2222e),(σy x y x h +-=上式中的h2∇称为高斯—拉普拉斯滤波(Laplacian of Gaussian,LoG)算子,也称为“墨西哥草帽”。
它是一个轴对称函数,各向同性,它的一个轴截面如图所示。
由图可见,这个函数在r=±s处有过零点,在|r|<s时为正,在|r|>s时为负;可以证明这个算子定义域内的平均值为零,因此将它与图像卷积并不会改变图像的整体动态范围。
但由于它相当光滑,因此将它与图像卷积会模糊图像,并且其模糊程度是正比于s的。
∇的平滑性质能减少噪声的影响,所以当边缘模糊或噪声较大时,正因为h2∇检测过零点能提供较可靠的边缘位置。
在该算子中,s的选择很重要,利用h2s小时边缘位置精度高,但边缘细节变化多;s大时平滑作用大,但细节损失大,边缘点定位精度低。
应根据噪声水平和边缘点定位精度要求适当选取s。
LoG 算子用到的卷积模板一般较大,不过这些模板可以分解为一维卷积来快速计算。
通过判断零交叉点及其两侧像素符号的变化来确定边缘点。
边缘点两侧的二阶微分是异号的,且正号对应边像点的暗侧,负号对应边像点的亮侧,两侧的符号指示着边缘的起伏走向。
三.实现代码1.主函数clc;i = imread('D:\matlab2011\work\p5-03.tif');subplot(121);imshow(i);title('原图像');b=log_edge(i);subplot(122);imshow(b);title('原图像');2.LoG算子提取边缘点函数%下面的代码可以实现LoG算子提取边缘点的功能function e=log_edge(a)%该函数实现LoG算子提取边缘点%输入为图像a,输出为边缘图像e[m,n]=size(a);e=repmat(logical(uint8(0)),m,n);sigma=2;%产生同样大小的边缘图像e,初始化为0rr=2:m-1;cc=2:n-1;fsize=ceil(sigma*3)*2+1;%选择点数为奇数的滤波器的尺寸fsize>6*sigma;op=fspecial('log',fsize,sigma);%产生LoG滤波器op=op-sum(op(:))/prod(size(op));%将LoG滤波器的均值变为0b=filter2(op,a);%利用LoG算子对图像滤波thresh=.75*mean2(abs(b(rr,cc)));%设置过零检测的门限%寻找滤波后的过零点:+ -和- +表示水平方向从左到右和从右到左过零%[+ -]'和[- +]'表示垂直方向从上到下和从下到上过零%这里我们选择边缘点为值为负的点[rx,cx]=find(b(rr,cc)<0&b(rr,cc+1)>0&abs(b(rr,cc)-b(rr,cc+1))>thresh); %[- +]的情况e((rx+1)+cx*m)=1;[rx,cx]=find(b(rr,cc-1)>0&b(rr,cc)<0&abs(b(rr,cc-1)-b(rr,cc))>thresh); %[+ -]的情况e((rx+1)+cx*m)=1;[rx,cx]=find(b(rr,cc)<0&b(rr+1,cc)>0&abs(b(rr,cc)-b(rr+1,cc))>thresh) ; %[- +]'的情况e((rx+1)+cx*m)=1;[rx,cx]=find(b(rr-1,cc)>0&b(rr,cc)<0&abs(b(rr-1,cc)-b(rr,cc))>thresh); %[+ -]'的情况e((rx+1)+cx*m)=1;%某些情况下LoG滤波结果可能正好为0,下面考虑这种情况:[rz,cz]=find(b(rr,cc)==0);if~isempty(rz)%寻找滤波后的过零%+0-和-0+表示水平方向从左到右和从右到左过零%[+0-]'和[-0+]'表示垂直方向从上到下和从下到上过零%边缘正好位于滤波值为零点上zero=(rz+1)+cz*m; %零点的线性坐标zz=find(b(zero-1)<0&b(zero+1)>0&abs(b(zero-1)-b(zero+1))>2*thresh); %[-0+]'情况e(zero(zz))=1;zz=find(b(zero-1)>0&b(zero+1)<0&abs(b(zero-1)-b(zero+1))>2*thresh); %[+0-]'情况e(zero(zz))=1;zz=find(b(zero-m)<0&b(zero+m)>0&abs(b(zero-m)-b(zero+m))>2*thresh); %[-0+]情况e(zero(zz))=1;zz=find(b(zero-m)>0&b(zero+m)<0&abs(b(zero-m)-b(zero+m))>2*thresh); %[+0-]情况e(zero(zz))=1;end四.结果分析用LoG算子进行边缘检测的结果如图。