课程设计报告设计题目基于MATLAB图像假彩色编码专业电子信息工程班级一班学生姓名黄涛实验成绩指导教师平子良2015年6月基于MATLAB图像假彩色编码黄涛(通信系电子信息工程1班)摘要:通过对原始图像进行假彩色编码,可以提高图像的可辨识灰度差异,再现图像细节.该项技术广泛应用在工程实践和数字图像处理。本文介绍了一些经典的图像假彩色编码原理与思想,包含密度分层假彩色编码﹑频率假彩色编码等。其中主要介绍了单色密度三级-RGB﹑复色密度、频域编码并以此进行试验,并在几种常规方法后进行自定义的基于MATLAB图像的假彩色编码。关键字:密度分层法假彩色编码;频域假彩色编码;MATLABFalsecolorcodingbasedonMATLABimageHuangTao(CommunicationElectronicInformationEngineering1)Abstract:Byusingfalsecolorcodingoftheoriginalimage,theimagecanbeimprovedtorecognizethegraydifferenceandreproducetheimagedetails.Thistechnologyiswidelyusedinengineeringpracticeanddigitalimageprocessing..Inthispaper,someclassicalimagefalsecolorcodingisintroduced,includingdensity,pseudocolorcoding,frequencyfalsecolorcodingandsoon..ThepapermainlyintroducesthemonochromedensitythreeRGBcompositecolordensity,frequencydomaincodingandthustest,andcustomafterseveralconventionalmethodsofbasedonMATLABimagepseudocolorcoding.Keywords:densitystratificationmethodfalsecolorprocessingfrequencyfalsecolorcodingprincipleMATLAB1.前言在实际生活中有着很多的黑白照片,比如B超照片、X射线底片、金相图片等,但人类视觉能能同时分辨的灰度最多不过15~20个层次,这就影响了人们对这些图像的分析处理。然而人眼的视锥细胞对彩色的分辨力却相当敏锐,以至于可以辨认出数以千万记的不同颜色。假彩色编码是通过光学手段给一张黑白图片中的不同黑白层次赋予不同的颜色,以提高人眼对黑白底片的辨识能力。但由于传统的光学手段操作繁琐,容易产生误差,因而借助于MATLAB7.1软件进行仿真实验。MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,被誉为“巨人肩上的工具”。MATLAB中除主包外,还包含许多功能各异的工具箱.用于解决各个领域的特定问题。它的工具箱主要有通信、控制系统、滤波器设计、图像处理、非线性控制设计、系统识别、神经网络、最优化、模糊逻辑、信号处理、鲁棒控制、统计等。借助于这些工具箱,用户可以非常方便地迸行分析、计算及设计工作。由于MATLAB有着上述种种的便捷之处,借助其进行假彩色编码试验将会很便利、快捷。因此借助其对单色密度、复色密度、频域编码将是高效便捷的。随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中。但是图像具有庞大的数据量,不便于储存和传输,必须采用合适的方法对其进压缩,因此有必要对图像压缩标准编码进行研究。在众多的图像编码标准中,假彩色编码广泛应用于静态图此案的压缩,在数字图像压缩领域得到广泛的应用。2.灰度图像假彩色编码原理2.1密度分层假彩色编码密度分层法假彩色处理又称为灰度分层法,是假彩色处理技术中最基本、最简单的方法。在图像处理中,图像灰度变换属于点运算范畴。点运算(PointOperation)的概念是当算子T的作用域是以每一个单个像素为单位,图像的输出g(x,y)只与位于(x,y)处得输入f(x,y)有关,实现的是像素点到点的运算处理时,称这种运算为“点运算”。点运算的表达式为:s=T(r)或者g(x,y)=T[f(x,y)]式中:r和s分别为输入、输出像素的灰度级;T为灰度变换函数的映射关系。通过上述式子可以将原图像(x,y)处的灰度f(x,y)变为T[f(x,y)],T算子描述了输入灰度级和输出灰度级之间的映射关系。密度假彩色处理是对图像的灰度值动态范围进行分割,使分割后的每个灰度值区间甚至每个灰度值本身对应于某一颜色。具体而言,假定把一幅图像看作一个二维的强度函数,用于一个平行于图像坐标平面的平面(称之为密度切割平面)去切割图像的强度函数,这样图像灰度在分割处被分为上、下两部分,即两个灰度值区间。如果再对每一个区间赋予某种颜色,就可以将原来的灰度图像变换成只有两种颜色的图像。更进一步,如果用多个密度切割平面对图像函数进行分割,那么就可以将图像的灰度动态范围切割成多个区间。应当指出的是,每一灰度值区间赋予何种颜色,是由具体应用决定的,并无规律可言。但相邻灰度值区间的颜色差别不宜太小也不宜太大。太小将无法反映细节上的差异,太大则会导致图像出现不连续性。实际应用中,密度切割平面之间可以使等间隔的,也可以是不等间隔的,而且切割平面的划分也应依据具体的应用范围和研究对象而确定。结论:密度假彩色编码不改变图像的大小,不考虑质量的变化,只改变图像的颜色,突出人想要突出的部分。2.2频率假彩色编码在频域假彩色增强时,先把灰度图像f(x,y)中的不同频率成分别经过FFT傅里叶变换到频率域。在频率域内,经过三个不同传递特性的滤波器,f(x,y)被分离成三个独立分量,然后对它们进行IFFT傅里叶逆变换,便得到三幅代表不同频率分量的单色图像。接着对这三幅图像作进一步的附加处理,最后将它们作为三基色分量分别加到彩色显示器的红、绿、蓝显示通道,从而实现频率域分段的假彩色增强。频率域滤波的假彩色增强处理原理如图2-1图2_1频域滤波的假彩色增强处理框图频域假彩色编码的意义图像经过变换后处理起来比变换前更加简单方便,由于这种变化是对图像函数而言的,所以称为图像变换。现在研究的图像变换基本上都是正交变换,正交变换可以减少数据的相关性,获取图像的整体特点,有利于用较少的数据量表示原始图像,这对图像的分析、存储以及图像的传输都是非常有意义的。图像的傅里叶变换傅里叶变换分为连续函数的傅里叶变换和离散函数的傅里叶变换两种,由于计算机只能处理离散数值,所以连续傅里叶变换在计算机上无法直接使用。为了在计算机上实现傅里叶变换计算,必须把连续的函数离散化,即将连续傅里叶变换转换为离散傅里叶变换。频域滤波频域滤波增强方法是将图像从空间域变换到频域,在图像的频域空间对图像进行滤波处理。根据信号分析理论,傅里叶变换和卷积理论是频域滤波技术的基础,因此,在频域空间的滤波与在空间域滤波一样可以通过卷积运算实现。假定g(x,y)表示函数f(x,y)与线性不变算子h(x,y)进行卷积运算的结果,即g(x,y)=f(x,y)*h(x,y)式(2_2)因此可得G(u,v)=F(u,v)H(u,v)式(2_3)其中,H(u,v)为传递函数,为突出F(u,v)中的不同频率部分而设计出不同的滤波器。滤波器分为很多种,常见的有高通滤波器,低通滤波器,带通滤波器。低通滤波器,它能减弱或消除傅里叶空间的高频分量,但不影响低频分量。因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑。高通滤波器,它能够减弱或消除傅里叶空间的低频分量,但不影响高频分量。因为低频分量对应图像中灰度值缓慢变化的区域,因而与图像的整体特性,如整体对比度和平均灰度值等有关,高通滤波器将这些分量滤去可使图像锐化。带通滤波器,它能够减弱或消除傅里叶空间的特定频率分量,既不是图像中的高频成分也不是低频成分,而是在一个有限的频带范围内。这三种滤波器的特性曲线是三维图形,其二维剖面示意图如图2_2所示:图2_2频域低通、高通、带通三种滤波器剖面示意图本实验用滤波器常见的滤波器的类型有很多,如理想型、巴特沃斯型、指数型等。本次实验中应用的是巴特沃斯型滤波器。巴特沃斯低通滤波器的传递函数为:式(2_4)式中,D0为截止频率;n为滤波器的阶次。和理想滤波器一样,巴特沃斯低通滤波器的特性曲线同样为三维图型,其剖面示意图如图4-2所示。一般情况下,当H(u,v)下降到最大值1/2时,D(u,v)为截止频率D0。图2_3巴特沃斯低通滤波器剖面特性图巴特沃斯滤波器又称为最大平坦滤波器,其通带与带阻之间的过渡比较平坦。因此,巴特沃斯低通滤波器的特点是:在通过频率与截止频率之间没有明显的不连续性,不会出现“振铃”效应,其效果好于理想低通滤波器。这也是本实验采用其的原因。巴特沃斯高通滤波器的传递函数为:式(2_4)巴特沃斯高通滤波器性能的剖面示意图如图4-3所示。截止频率的取值方法也是降到最大值的1/2时取得。该通过频率与截止频率之间也没有明显的不连续性,图像增强后,“振铃”现象不明显。图2_4巴特沃斯高通滤波器剖面特性图3.试验模拟结果及分析3.1单色密度实验对图像进行了灰度分段,对不同的灰度段赋予了三基色中不同的单色。编码程序:I=imread('C:\DocumentsandSettings\Administrator\桌面\平野\测试图像\2.jpg');J=zeros(256,256,3);I=double(I);[m,n]=size(I);fori=1:256(m)forj=1:256(n)if0=I(i,j)&&I(i,j)=80R(i,j)=255;G(i,j)=0;B(i,j)=0;elseif80=I(i,j)&&I(i,j)=190R(i,j)=0;G(i,j)=255;B(i,j)=0;elseif190=I(i,j)&&I(i,j)=255R(i,j)=0;G(i,j)=0;B(i,j)=255;endendendendendJ(:,:,1)=R;J(:,:,2)=G;J(:,:,3)=B;figure,imshow(uint8(J));程序所得图像:图(3-1)程序修改部分:fori=1:256(m)forj=1:256(n)if0=I(i,j)&&I(i,j)=80R(i,j)=0;G(i,j)=255;B(i,j)=0;elseif80=I(i,j)&&I(i,j)=190R(i,j)=0;G(i,j)=0;B(i,j)=255;elseif190=I(i,j)&&I(i,j)=255R(i,j)=255;G(i,j)=0;B(i,j)=0;修改后程序所得图像:图(3-2)分析:该程序的修改使得红绿蓝三色的所在位置发生了互换但其色域及颜色并没有发生改变。程序自定义修改部分:[m,n]=size(I);fori=1:256(m)forj=1:256(n)if0=I(i,j)&&I(i,j)=80R(i,j)=0;G(i,j)=255;B(i,j)=0;elseif80=I(i,j)&&I(i,j)=190R(i,j)=0;G(i,j)=0;B(i,j)=255;elseif190=I(i,j)&&I(i,j)=255R(i,j)=255;G(i,j)=255;B(i,j)=0;自定义修改后程序所得图像:图(3-3)分析:自定义修改后的程序所做出的图像与图(3-2)相比色域并未再次互换,但发生了混色现象,这是因为在该区域内程序设置了R(i,j)=255;G(i,j)=255,使得该区域中同时存在等量的红色和绿色,发生混色后得到了黄色。3.2复色密度实验对图像