数字图像处理及MATLAB实现(17页).doc

上传人:1595****071 文档编号:36341480 上传时间:2022-08-26 格式:DOC 页数:18 大小:435KB
返回 下载 相关 举报
数字图像处理及MATLAB实现(17页).doc_第1页
第1页 / 共18页
数字图像处理及MATLAB实现(17页).doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《数字图像处理及MATLAB实现(17页).doc》由会员分享,可在线阅读,更多相关《数字图像处理及MATLAB实现(17页).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-MATLAB数字图像处理1 概述BW=dither(I)灰度转成二值图;X=dither(RGB,map)RGB转成灰度图,用户需要提供一个Colormap;X,map=gray2ind(I,n)灰度到索引;X,map=gray2ind(BW,n)二值图到索引,map可由gray(n)产生。灰度图n默认64,二值图默认2;X=graylice(I,n)灰度图到索引图,门限1/n,2/n,(n-1)/n,X=graylice(I,v)给定门限向量v;BW=im2bw(I,level)灰度图I到二值图;BW=im2bw(X,map,level)索引图X到二值图;level是阈值门限,超过像素为1

2、,其余置0,level在0,1之间。BW=im2bw(RGB,level)RGB到二值图;I=ind2gray(X,map)索引图到灰度图;RGB=ind2rgb(X,map)索引图到RGB;I=rgb2gray(RGB)RGB到灰度图。2 图像运算2.1 图像的读写MATLAB支持的图像格式有bmp,gif,ico,jpg,png,cur,pcx,xwd和tif。读取(imread):1 A=imread(filename,fmt)2 X,map=imread(filename,fmt)3 =imread(filename)4 =imread(URL,)说明:filename是图像文件名,如

3、果不在搜索路径下应是图像的全路径,fmt是图像文件扩展名字符串。前者可读入二值图、灰度图、彩图(主要是RGB);第二个读入索引图,map为索引图对应的Colormap,即其相关联的颜色映射表,若不是索引图则map为空。URL表示引自Internet URL中的图像。写入(imwrite):1 R=imwrite(A,filename,fmt);2 R=imwrite(X,map,filename,fmt);3 R=imwrite(,filename);4 R=imwrite(,Param1,Val1,Param2,Val2)说明:针对第四个,该语句用于指定HDF,JPEG,PBM,PGM,PN

4、G,PPM,TIFF等类型输出文件的不同参数。例如HDF的Quality,Compression,WriteMode;JPEG的BitDepth,Comment:Empty or not,Mode:lossy or lossless,Quality等。2.2 图像的显示方法1:使用Image Viewer(图像浏览器),即运用imview函数。同时显示多帧图像的所有帧,可用到montage函数。改变显示大小:imview(X,map,IntialMagnificatition,fit), IntialMagnificatition默认值为100,即100%显示,设置为fit则全屏显示。关闭:i

5、mview close all。Image Viewer还提供了三个工具:全景查看窗口(导航功能)、像素区域工具、图像信息窗口。方法2:使用图形图像视窗,即运用imshow函数。调用truesize函数来设定图像到屏幕像点的映射关系。可以运用getimage函数来将当前显示的图像赋值给一个变量。调用格式:1 imshow(I,n);n为灰度级2 imshow(I,low,high);指定I的数据范围3 imshow(BW);显示二值图像BW,0为黑色,1为白色4 imshow(X,map);索引图像5 imshow(RGB);6 imshow(,display_option);显示图像的方式,

6、选择notruesize或者turesize7 imshow(x,y,A,);x,y建立非默认的空间坐标系统8 imshow filename;9 h=imshow()h表示被显示图像的句柄2.3 图像的代数运算1 相加(imadd):Z=imadd(X,Y)存为8位;Z=imadd(X,Y,uint 16)存为16位。2 求补(imcomplement):IM2=imcomplement(IM1)。3 减法(imsubtract或者imabsdiff): Z=imsubtract(X,Y)差值结果小于0的赋值为0;Z=imabsdiff(X,Y) 差值结果取绝对值。4 乘法(immultip

7、ly):Z=immultiply(X,Y)。5 除法(imdivide):Z=imdivide(X,Y)。2.4 点运算灰度变换函数GST:。其中有:1线性点运算;2非线性点运算;3直方图修正。2.5 图像的集合运算改变大小imresize:Y=imresize(X,M,method),其中M为放大的倍数,method有如下几种插值方式nearest,bilinear,bicubic。也可以规定输出图像大小,heng,zong。图像旋转imrotate:Y=imrotate(X,angle,method,crop),angle表示逆时针旋转,method同imresize的用法,crop表示将

8、旋转以后的图像取与原图像大小相同的中心部分取出。比例缩放imresize:同改变大小。空间变换imtransform:B=imtransform(A,TFORM,param1,val1,param2,val2),其中TFORM为makeform或者cp2tform产生的结果。如TFORM=makeform(transformtype,),transform为变换类型,如下:转换类型描述Affine二维或N维仿真变换Projective二维或N维投影变换Custom用户自定义变换Box各维独立变换的放射变换Composite两种或多种变换的组合变换MATLAB中还提供了很多空间变换的工具,如:f

9、liptform,fgormfwd,tforminv,findounds,makereample,tformarray,imtransform等。2.6 图像的领域和块操作领域操作分为滑动领域和分离领域两类。滑动领域函数nlfilter,用法如下:1 B=nlfilter(A,m n,fun)m n表示滑动领域m*n,fun为图像领域上的处理函数;2 B=nlfilter(A,m n,fun,P1,P2,)可以传递参数P1,P2,给函数fun;3 B=nlfilter(A,indexed)把图像作为索引色图像处理,double填补1,uint8补0。而且fun可以是一个函数句柄或是一个内联函数

10、,返回类型由fun决定。但是nlfilter处理时可能需要很长时间,这时可是考虑使用快速处理函数colfilt。用法类似,多一个参数bldck_tpye,表示块的移动方式,有distinct和sliding两个取值,前者表示分离块操作,后者表示滑动块操作。而且有mblock nblock表示图像块的大小。分离块操作是将图像划分为大小相同的矩形区域,不同图像块在图像中无重叠排列,其顺序从左上角开始,不足的地方可以在右下角补0。函数为blkproe,调用格式和nlfilter类似。2.7 几何畸形校正和图像配准用到函数imtransform。3 MATLAB二维与三维图形绘制及动画3.1 基本绘图

11、命令函 数功 能Plot二维,x,y都是线性坐标Semilogx二维,x为对数坐标,y为线性Semilogx二维,x为线性坐标,y为对数Loglog二维,都为对数坐标Plotyy二维,左右各一个y轴Polar极坐标图Grid添加(grid on)或者去掉(grid off)网格Zoom允许或者不允许进行放大操作Ginput用光标获取图像中点的坐标Patch填充二维或三维坐标中的二维图像Fill填充二维坐标中的二维图像3.2 绘图选项常用的绘图选项:线形:- -. - :颜色:r g b c m y k w 点标记:+ o * . x s d h p v坐标轴标注:axis(xmin xmax,

12、ymin ymax),axis auto/square/xy/ij/normal/off/on等用法。图形窗口保持:hold onhold off。给坐标加边框:box onbox off。图形缩放:zoom onzoom outzoom off。快速绘图:fplot(fun, xmin xmax,ymin ymax)。打印:printfilename-device-options,其中device决定打印机的类型。3.3 特殊坐标二维图形Bar/bar3长条图Comet彗星流动图Semilogx对数坐标图形Errorbar图形加上误差范围Fplot较精确的函数图形Polar极坐标绘图Hist

13、累计图(直方图)Plotyy双y轴图形Rose极坐标累计图(玫瑰)Plot插入表格Stairs阶梯图Stem针状图Fill实心图Feather羽毛图Compass罗盘图Quiver向量场图说明:plotyy(x1,y1,x2,y2,fun1,fun2),即可以用fun1和fun2来指定不同的绘图函数,也可缺省,如fun1可以是plot等等。Plot(z)绘制复数z的实部与虚部的图形。3.4 二维图形处理图形标注:title,xlabel,ylabel,zlabel,text,gtext,legend。图形窗口的分割:subplot(m,n,p)。坐标系设定:axes,也可事后用gca(get

14、current axes)获得当前坐标系的句柄。通过get和set函数获取和设置坐标轴对象的有关属性值。用法如:属性值=get(句柄,属性)或者set(句柄,属性1,属性值1,属性2,属性值2,)。3.5 三维图形的绘制Plot3三维线条图Surfc建立带基本等高线的表面图Mesh建立网格图Surfl建立带指定方向照明的表面图Meshc建立具有基本等高线的网格图Surface建立表面图对象的低级函数Meshz建立具有基准平面的网格图Fill3填充三维多边形Surf建立表面图Pcolor二维伪彩色绘图,surf的俯视说明:1改变网格属性:set(axes_handle,XGrid,on) gri

15、d函数显示网格。2网格图中用到函数hidden on和hidden off来显示或者不显示被遮住部分。3waterfall函数在x轴方向产生水流效果。4meshgrid函数产生一个x-y平面的网格,如:x,y=meshgrid(-3:0.1:3,-2:0.1:2)。5绘制球面的函数是sphere,如:sphere(n)或者x,y,z= sphere(n)。也可以是函数cylinder,用法:cylinder(R,n)或者x,y,z= cylinder(R,n)。n为面数,R为一函数。6colorbar命令的作用是在三维曲面图旁边绘制一个可以指示亮度的彩色条。7去除图中的黑线条,并对颜色做平滑和

16、插值处理,用到shading函数,用法如下表:Shading flat去掉各片连接处的线条,平滑颜色Shading interp去掉连接线条,使颜色均匀过渡Shading faceted默认值8三维等值线图:contour3。多一个指定等值线数目的参数N。contour为其俯视图。9quiver函数在等值线图上画出方向或速度箭头:quiver(X,Y,DX,DY)。求导:gradient。10fill3用法类似于fill,对三维图形进行填充。11clabel函数:添加等高线。12bar和bar3参数说明:group同一行数据的方条靠一起,stack画在一个方条上。13饼形图pie和pie3:参

17、数explode指定某些片是否和整个图脱开,与x的维数相同的向量,其中非0的那一片脱离整体。加上标注如属性1,属性2,。14火柴杆图和瀑布图:stem,stem3和waterfall。3.6 三维图形的控制视角view:仰角(与z轴的夹角)el和方位角(与x轴的夹角)az,即view(az,el)。控制光照light:参数有color,style(infinit和local)和position。函数lightangle添加光照,并指定其方位角和仰角,可是使用函数shading增强表面。3.7 动画提供以下函数来制作:Moviein产生一个矩阵来存放动画中的帧Getframe对当前的图形进行快照

18、Movie按顺序回放各帧不断在屏幕上对图形进行erase和redraw,而每次redraw时对对象的某个参数进行增量变化,需要用到对象的EraseMode属性。4 MATLAB图像增强4.1 原理、方法及体系结构三个阶段:图像预处理、特征抽取阶段、识别分析阶段。目的:改善图像的视觉效果,提高图像成分的清晰度;是图像变得有利于计算机处理。方法:空间域增强方法、频域增强方法。体系:图像增强:空间域、频率域、彩色增强空间域:像素点处理(图像灰度变换、直方图修正(中值滤波、均值滤波)、领域处理(图像平滑滤波、图像锐化滤波)频率域:低通滤波、高通滤波、同态滤波彩色处理:真彩色处理、伪彩色处理(灰度分层法

19、、灰度变换法、频域伪彩色)4.2 对比度增强线性变换:。其中功能是把函数的灰度值从范围m,M变为n,N。非线性变换:分为对数变换和Gamma变换。前者表达式为,其中c为常数。后者表达式为,r为CCD图像传感器或胶片等的入射光的强度,为常数,灰度与光强成正比,则有,k为常数通常为1,1/r取0.40.8。我们可以用一个函数imadjust函数来实现:J=imadjust(I);J=imadjust(I,low_in;high_in,low_out;high_out);J=imadjust(I,low_in;high_in,low_out;high_out,gamma)。其中灰度范围用归一化灰度值

20、,范围0,1。整个图像的low_in;high_in可以用函数stretch函数来获得。MATLAB image toolbox5.4还提供一个手动调节的控制面板,调用函数imconstrast。4.3 空域变换增强分为基于像素点和基于模板的两类方法。像素选择:pixval和impixel。用法如下:Pixval(on/off);pixval;pixval(fig,option);C,R,P=impixel(X,MAP)。说明:MAP仅仅当是索引图的时候采用此参数。C为像素的颜色,R,P为像素的坐标。Pixval可以得到更多的像素信息,impixel可以返回指定像素的颜色值。强度描述图:imp

21、rofile,用以描述图像一条线段或多条线段的强度值。格式:C=improfille(I,xi,yi)。参数xi,yi是两个向量,用以指定线段的端点。图像轮廓图:imcontrour,自动设置坐标轴,使输出图像在其方向和纵轴比上能够与显示的图像吻合。直方图匹配。从而可以得到直方图均衡化的公式如下:。在MATLAB中提供函数histep来实现。用法histep(I,n)。4.4 图像锐化边界撮合锐化:边界提取函数edge,以及fspecial(建预定义的二维过滤器),再者函数imfilter(N-D过滤的多维影像)。锐化滤波器:分为拉普拉斯(Laplacian)算子和Wallis算子。拉普拉斯算

22、子具有各向同性和平移不变性,有时称为边界提取算子。其卷积模板为:四领域 八领域规定的大小后,可设置卷积模板为向量h,并用函数imfilter(I,h)即可。Wallis算子是一种改进的Laplacian算子,有如下公式:式中:是原始图像,它的局部均值和局部标准偏差分别为和,和表示设计的平均值和标准偏差,A为增益系数,是控制增强图像中边缘和背景组成的比例常数,为增强后的图像。空间域图像锐化:空域高通滤波法、梯度法图像锐化、利用Sobel算子对图像滤波、利用拉普拉斯算子对模糊图像进行增强。梯度法的5种方法如下:【1】;【2】;【3】,为固定灰度代替【2】中小于阈值T时仍选用原图像的像素点值;【4】

23、;【5】。频率域图像锐化:傅里叶变换等等。4.5 图像伪色彩增强图像伪色彩是指将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布的图像。可以利用不同色彩变现不同灰度,还可以表示不同的频率成分。彩色增强分为:假彩色增强(将一幅彩色图像映射为另一幅彩色图像)、伪彩色增强(将一幅黑白图像不同灰度级映射为一幅彩色)。伪彩色处理的三种方法:灰度分层法(grayslice)、灰度变换法(对比度调整函数imadjust)、频域伪彩色处理(先做IFFT,再做进一步处理,最后将它们作为三基色分量分别加到彩色显示器的红绿蓝通道)。J=imadjust(I,low,high,bottom,top,gamm

24、a),返回图像I经过直方图调整后的图像J,low,high为原始中要变换的灰度范围,bottom,top指定变换后的灰度范围,两者默认为0,1。Gamma为矫正值,等于1为线性变换;小于1对图像的像素值加权,使输出像素灰度值比原来大;大于1灰度值比原来小。4.6 图像频域增强4.6.1低通滤波理想低通滤波器,为截止频率。Butterworth低通滤波器,n为正数,越大误差速度越大。指数低通滤波器(高斯低通滤波器) ,不会带来振铃效应。梯形低通滤波器,、预先给定。4.6.2 高通滤波4.6.3 同态滤波这是一种在频率域中同时将图像亮度范围进行压缩和将图像对比度增强的方法,基本思想是将非线性问题转

25、化为线性问题处理。其处理流程图为:。常用的设计如:可以得到,其中I、R分别为照射分量和反射分量。5 MATLAB图像分割技术图像分割就是按照一定的原则将一幅图像或景物分为若干特定的、具有独特性质的部分或子集,并提取出感兴趣的目标的技术和过程。5.1 图像分割概述依据是建立在图像上像素间的“相似性”和“非连续性”两个概念之上。比较正式的定义如下。令集合R代表整个图像区域,对R的图像分割可以看作是将R分成N个满足以下条件的非空子集。(1)。(2)对。(3)对。(4)对。(5)对时连通的区域。图像分割分类:相似性分割(阈值分割、区域分裂与合并),非连续性分割(边缘检测、边缘跟踪);结构分割方法(阈值

26、分割、区域生长、边缘检测、纹理分析等),非结构分割方法(统计模式识别、神经网络方法、其他利用景物的先验知识实现的方法)。5.2 边缘检测边缘检测是所有基于边界分割方法最基本的处理。图像的边缘是图像的最基本特征。常见的边缘分为阶跃型、房顶型和凸缘型。边缘检测方法:空域微分算子、拟合曲面、小波多尺度边缘检测、基于数学形态学的边缘检测。常见的微分算子:(1) Robert算子。(2) Sobel算子。(3) Prewitt算子。用卷积模板来描述如下式其中前者为水平模板,后者为垂直模板。(4) Kirsch算子。使用八个模板来确定梯度的幅值和方向,又称为方向算子。则边缘饿梯度大小为:式中:下标超过7就

27、用8去除取余作为下标。其中的八个模板如下: (5) LOG(Laplacian-Gauss)算子。先用高斯函数对图像进行平滑,然后再用拉普拉斯算子进行运算,这就是LOG算子,它使用一个墨西哥草帽函数的形式。常见的LOG算子模板为5*5的模板:(6) Canny(坎尼)算子。好的边缘检测算子有三个指标,即低失误率、高位置精度和对每一个边缘点有唯一的响应得到单像素宽度的边缘。John Canny提出边缘检测算子的三个推测 信噪比(SNR)准则。信噪比越大,提取的质量越高。定义如下:代表边缘函数,代表宽度为w的滤波器的脉冲响应,代表高斯噪声的均方差。 定位精度准则。定义如下: 单边缘响应准则。检测算

28、子的脉冲响应导数的零交叉点平均距离满足:Canny设计的边缘检测算法步骤如下:(1) 首先用2D高斯滤波模板进行卷积以平滑图像。(2) 利用微分算子(如Prewitt、Sobel等),计算梯度的幅值和方向。(3) 对梯度幅值进行非极大值抑制,即遍历图像,找出非边缘。(4) 使用双阈值算法检测和连接边缘。边缘的特征:灰度突变、不同区域的边界、具有方向性。四个卷积模板,分别按,以点位中心将3*3的区域分为两个部分。分别对图像中的每一像素点进行卷积和操作。如下:边界(轮廓)跟踪实质上就是沿着图像的外部边缘“走”一圈,也称为边缘点连接,是一种基于梯度的图像分割方法,是指从梯度的一个边界点出发,依次通过

29、对前一个边界点的考察而逐步确定下一个新的边界点,并将它们连接进而逐步检测出边界的方法。常用的轮廓跟踪技术有两种探测法和梯度法。简单的边界跟踪法的步骤如下。(1) 根据光栅扫描所示,发现像素从0开始变为1的像素p0时,存储它的坐标(i,j)。(2) 从像素(i,j-1)开始反时针方向研究8-邻接像素,当第一次出现像素值为1像素记为pk,开始k=1,也同样存储p1的坐标。(3) 同上,反时针方向从pk-1以前的像素研究pk的8-邻接像素,把最先发现像素值为1的像素记为pk+1。(4) 当pk=p0而且pk+1=p1时,跟踪结束,其他情况重复(3)。MATLAB实现:edge函数。调用格式g,t=e

30、dge(I,method,parameters)。其中method如下表。输出的g为一个逻辑数组(在I中检测到边缘的位置为I,否则为0)。参数t为可选,它给出edge使用的阈值,以确定哪个梯度值足够大到可以称为边缘点。robetrtsRoberts算子sobelSobel算子prewittProwitt算子logLOG算子zerocross零交叉方法cannyCanny算子特殊参数说明:thresh敏感度阈值,默认自动选择Roberts算子处理;direction在所指定的方向direction上进行边缘检测,可取horizontal、vertical和both;sigma标准偏差,默认时为2

31、,若滤波器为n*n维,则n=ceil(sigma*3)*2-1。5.3 基于阈值选取的图像分割方法5.3.1 灰度阈值分割假设:每个区域是由许多灰度值和相近的像素构成的,物体和背景之间或不同物体之间的灰度值有明显的差别,可以通过取阈值来区分。灰度图像二值化:大于阈值为255(归一化值为1),小于为0。多区域分割:5.3.2 直方图阈值当灰度图像中画面比较简单且对象物的灰度分布比较有规律时,背景和对象物在图像的灰度直方图上各自形成一个峰值,两个峰值之间有一个波谷,以此为阈值,可将两个区域分离。阈值双峰法。5.3.3 最大熵阈值是选择的阈值t分割图像目标区域、背景区域两部分灰度统计的信息最大。熵函

32、数定义:其中有目标区域O和背景区域B熵的定义分别为:P为灰度的概率。5.3.4 二维直方图阈值由点灰度值、区域灰度均值两个灰度值组成的灰度平面及一系列垂直于灰度平面的线段构成。阈值为(s,t),目标A和背景B的熵为定义熵的判别函数为:,C区和D区包含关于噪声和边缘的信息,概率小可忽略,所以有所以有:选取的最佳阈值向量满足:5.3.5 局部阈值法原始图像被分为几个小的子图像,再对每个图像分别求出最优分割阈值。分割后边界处可能产生灰度级的不连续性,需要用平滑技术进行排除。5.4 基于区域的图像分割方法阈值分割由大到小拆分,区域生长由小到大合并,结合在一起叫做分裂-合并法。区域生长法,也称为区域增长

33、,将具有相似性质的像素集合起来构成一个区域。具有以下三个步骤:(1) 确定选择一组能正确代表所需区域的起始点种子像素;(2) 确定在生长过程中将相邻像素包括进来的(相似性判别生长)准则;(3) 确定区域生长过程停止的条件或规则。分裂-合并分割方法(Split-merge-Algorithm)指从事的某一层开始,按照某种区域属性的一致性测度,对应该合并的相邻块合并,对应该进一步划分的块再进行划分的分割方法。基本的数据结构:树结构、图像四叉树结构、金字塔数据结构。分裂-合并算法是借助金字塔数据结构进行分裂和合并运算的典型算法,利用四叉树进行分开合并算法的主要方法:分裂、合并、把各个小块区域进行总合

34、并。四叉树分解的函数:qtdecomp对原始图像进行四叉树分解qtgetblk获取四叉分解中的块值qtsetblk设置四叉树分解的块值Qudecomp参数:S四叉树结构返回的稀疏矩阵Threshold进行四叉树分解的阈值Mindim产生的方块尺寸的最小值Maxdim产生的方块尺寸的最大值Fun利用fun函数来确定方块是否需要继续分裂Qtgetblk参数:Dim返回的子块的大小Vals返回子块的存储数组R,c反别存放行、列坐标的矢量,对应着各个子块左上角Idx返回各个子块的左上角的线性索引,存放在矢量idx中Qtsetblk语法格式:J=qtsetblk(I,S,dim,vals)5.5 彩色图

35、像分割色彩空间:RGB和CMY。HIS空间:色度、饱和度和亮度。其中H表示不同的颜色,I表示颜色的明暗程度,S表示颜色的深浅。I分量与彩色信息无关,H和S分量与人感受彩色的方式紧密相连。从RGB到HIS的转换关系:还有如YIQ、YUV、YcbCr等色彩系统。从HIS到RGB变换取决于要转换的点落在原始色所分割的哪个扇区。如下。彩色分割策略:直方图、阈值法、区域生长法、边缘检测法、模糊集合法和神经网络法都可以用。5.6 基于边缘检测的图像分割Hough变换原理,是一种线描述方法。它可以将图像空间中用直角坐标表示的直线变换为极坐标空间中的点,一般称为线-点变换。利用Hough变换提取直线的基本原理

36、是,把直线上点的坐标变换到过点的直线的系数域,通过利用共线和直线相交的关系,使直线的提取问题转化为计数问题。主要优点是受直线的间隙和噪声影响较小。直角坐标中过点(x,y)的直线可表示为,则Hough变换的形式为。极坐标中Hough变换代表原点距直线的法线距离。Hough变换的性质:(1) 通过xy平面域上一点的一簇直线变换到极坐标变换域平面时,将形成一条类似正弦状的正弦曲线。(2) 平面上极坐标变换域中的一点对应于xy域中的一条直线。(3) xy平面域中一条直线上的n个点对应平面极坐标变换域中经过一个公共点的n条曲线。提取直线的Hough变换可以概括为:(1) 在和合适的最大值和最小值之间建立

37、一个离散的参数空间。(2) 建立一个累加器,并置每个元素为0。(3) 在参数空间,对每个点做Hough变换,计算出网格上所有点的值,并在响应的累加器加1,即。(4) 累加结束后,的值就是在处共线点的个数。6 MATLAB图像编码与压缩6.1 图像编码压缩概述分类:从信息论角度出发:(1) 冗余度压缩方法,也称无损压缩、信息保持编码或熵编码。可逆运算。哈夫曼编码、算术编码、行程编码、Lempel zev编码。(2) 信息量压缩方法,也称有损压缩、失真度编码或熵压缩编码。不可逆,有失真。预测编码(DPCM、运行补偿)、频率域方法(正交变换、子带编码)、空间域方法(统计分块编码)、模型方法(分开编码

38、、模型编码)、基于重要性(滤波、子采样、比特分配、矢量量化)。按压缩技术所依据和使用的数学理论和计算方法进行分类:(1) 统计编码。主要针对无记忆信源。用短码来表示出现概率较大的码字,用长码表示出现概率较小的码字。常用行程编码、哈夫曼编码和算术编码三种。(2) 预测编码。传输图像像素与预测值的差值,简单、经济且效率高。典型的包括DPCM,增量调制编码等。(3) 变换编码。利用图像块中像素之间的相关性把图像变换到一组新的基(一般为频率域)上,再进行压缩。两步变换和统计编码。常用的有离散余弦变换(DCT)、整数DCT、小波变换等。根据质量:(1) 有损压缩。(2) 无损压缩。根据作用域:(1) 空

39、间编码。(2) 变换编码。(3) 混合编码。根据自适应分:(1) 自适应性编码。(2) 非自适应性编码。图像编码质量的评价:客观准则和主观准则。客观:原始图像为,响应的压缩后的还原图像为,误差图像,那么均方误差为,或均方根误差。信噪比:另一种首先对原始图像去均值,则更常用的峰值信噪比:,K为表示一个像素点用的二进制。主观:采用打分制度,从5到1分别对应最好到最差。6.2 统计编码6.2.1 哈夫曼编码这是一种可变长编码方式,是二叉树的一种特殊化转化形式。将使用次数多的代码转换成长度较短的代码,而使用次数少的可以使用较长的编码,并且保持编码的唯一可解性。其最根本的原则是:累积的(字符的统计数字*

40、字符的编码长度)最小,也就是权值的和最小。基本步骤如下。(1) 从左到右把信源符号概率按从小到大的顺序排列。(2) 将两个最小的概率进行组合相加,并继续这种步骤,始终将较高的频率分支放在上部,直到概率达到1.0为止。(3) 对每对组合中上边的一个都指定为1,下边的都指定为0,或者相反。(4) 画出由每次信源符号到达概率为1.0处的路径,记下沿路径遇到的各个1或0。(5) 对于每个信源符号都写出1和0的序列,则最后便得到了哈夫曼编码。具有以下特点。(1) 哈夫曼编码不是唯一的。(2) 对不同信源的编码效率是不同的。(3) 结果不等长,硬件实现困难,另外编码传播困难。(4) 一般情况下,哈夫曼编码

41、的效率要比其他编码方法的效率高,是最佳变长码。变量HufData在MATLAB中定义的一个结构体,包含四个域:value、code、left和right,分别表示信源符号概率、哈夫曼编码、哈夫曼树节点的左孩子和右孩子。HuffmanCode(n)哈夫曼函数。6.2.2 算术编码信息用0到1之间的实数进行编码,有两个基本参数:符号概率和编码间隔。信源符号的概率决定压缩编码的效率,也决定编码过程中信源符号的间隔,而这些间隔包含在0到1之间。编码过程中的间隔决定了符号压缩后的输出。基本原理将编码的信心表示成实数0到1之间的一个间隔,信心越长,编码表示它的间隔越小,表示这一间隔所需的二进制位就越多。基

42、本步骤如下。(1) 计算信源中每一个符号的出现频率,并求出符号的累计概率值。(2) 令回合记数,初始编码区间定为,代表上下限。(3) ,其中为个信源符号的累计概率值。(4) 重复(3),每次读入一个输入符号,并根据该符号适当地调整编码区间,一直到所有输入符号都处理完为止。特点:(1) 不必预先定义概率模型,自适应模式具有独特的优点。(2) 信源符号概率接近时,建议使用算术编码,此时效率高于哈夫曼编码。(3) 算术编码绕过了用一个特定的代码替代一个输入符号的想法,用一个浮点数糊树脂代替一个符号流的输入。6.2.3 行程编码又称“运行长度编码”或“游程编码”,是一种统计编码,该编码属于无损压缩编码,对于二值图像有效,行程编码的特点主要有:(1) 对于有大面积色块的图像,压缩效果很好。(2) 对于纷杂的图像,压缩效果不好,最坏情况下,会加倍图像数据量。6.3 预测编码DPCM编码(差分脉冲编码):线性预测编码。在编码过程中加入预测器。需要知道N个预测系数。能满足这些条件的表达式称为N阶自回归模式或ARM模式(Auto-Regressive Model)。运用补偿是一种描述相邻帧(编码上的相邻)差别的方法。-第 - 18 - 页-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁