多媒体通信实验报告
实验一、图像的傅立叶变换
一、
实验目的
1了解图像变换的意义和手段; 2熟悉傅里叶变换的孩本性质; 3热练掌握FFT 酌方法反应用;
4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MA TLAB 编程实现数字图像的傅立叶变换。
二、 实验原理
1应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MA TLAB 软件实现数字图像傅立叶变换的程序: I=imread(‘原图像名.gif ’); %读入原图像文件 imshow(I); %显示原图像
fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2);%计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化 figure; %设定窗口
imshow(A); %显示原图像的频谱
三、 实验步骤
1打开计算机,安装和启动MA TLAB 程序;程序组中“work ”文件夹中应有待处理的图像文件;
2利用MatLab 工具箱中的函数编制FFT 频谱显示的函数; 3 a). 调入、显示已有的图像;图像存储格式应为“.gif ”; b) 对这三幅图像做FFT 并利用自编的函数显示其频谱;
c) 讨论不同的图像内容与FFT 频谱之间的对应关系。 4记录和整理实验报告。
四、 实验仪器
1计算机;
2 MATLAB 程序;
3移动式存储器(软盘、U 盘等)。
五、 实验报告内容
(一) 对原图像进行傅立叶变换,实验结果如图:
分析:图像显示了原图像及其傅立叶频谱。观察傅立叶谱中心对称,在此图像进行傅立叶变换的计算之前被乘以(-1)
x +y
,以此增强了灰度级细节。
(二)输出彩色图像greens.jpg 的傅立叶频谱,实验结果如图:
分析:图像显示了原图像和其彩色图像傅立叶频谱。可以看出图像的频率分布是以原点为圆心,对称分布的。变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大).
(三) 对彩色图像football.jpg 进行二维DCT 变换,实验结果如图
:
分析:二维DCT 变换后的频谱图亮点在左上角。
六、 思考题
1.傅里叶变换有哪些重要的性质?
答:1. 线性 2.对称性 3.尺度变换 4.时移性 5.频移性 6.时域卷积 7.频域卷积 8.时域微分性 9.时域积分性 10.频域微分性 11.频域积分性
2.图像的二维频谱在显示和处理时应注意什么?
答:FFT2对图像进行二维快速傅立叶变换,得到F(U,V);其绝对值就是幅度图,由于频谱中值得动态范围较大,一般要经过对数变换才能显示图像的频谱图(幅度图).
实验二、图像增强
一、
实验目的
1掌握灰度直方图的概念及其计算方法;
2熟练掌握直力图均衡化和直方图规定化的计算过程; 3熟练掌握空域滤波中常用的平滑和锐化滤波器; 4掌握色彩直方图的概念和计算方法 5利用MATLAB 程序进行图像增强。
二、 实验原理
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
下面给出直方图均衡化增强图像对比度的MA TLAB 程序: I=imread(‘原图像名.gif); % 读入原图像
J=histeq(I); %对原图像进行直方图均衡化处理 Imshow(I); %显示原图像
Title(‘原图像’); %给原图像加标题名
Figure ;imshow(J); %对原图像进行屏幕控制;显示直方图均衡化后的图像 Title(‘直方图均衡化后的图像’) ; %给直方图均衡化后的图像加标题名
Figure; subplot(1,2,1) ;%对直方图均衡化后的图像进行屏幕控制;作一幅子图作为并排两幅图的第1幅图
Imhist(I,64); %将原图像直方图显示为64级灰度 Title(‘原图像直方图’) ; %给原图像直方图加标题名 Subplot(1,2,2); %作第2幅子图
Imhist(J,64) ; %将均衡化后图像的直方图显示为64级灰度
Title(‘均衡变换后的直方图’) ; %给均衡化后图像直方图加标题名 处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。
三、 实验步骤
1打开计算机,启动MA TLAB 程序;程序组中“work ”文件夹中应有待处理的图像文件;
2调入已获取的数字图像,并进行计算机均衡化处理; 3显示原图像的直方图和经过均衡化处理过的图像直方图。 4记录和整理实验报告
四、 实验仪器
1计算机;
2 MATLAB 程序;
3移动式存储器(软盘、U 盘等)。
五、 实验报告内容
(一) 对图像pout.tif 进行直方图均衡化处理,实验结果如图:
分析:图像显示了pout.tif 的原始图像、均衡化后的图像和它们各自的直方图。由均衡化前后的图像看,处理后的图像更想清晰,视觉效果更好,直方图由处理前的集中区域拉伸到全部灰度级范围。
(二) 再进行直方图规定化处理,实验结果如图:
分析:图中显示的是图像pout.tif 原图像和经过直方图规定化处理的图像及其直方图。规定化后的图像比原图像更清晰,视觉效果更好。
六、 思考题
1. 直方图是什么概念?它反映了图像的什么信息?
答:直方图是以图形化参数来显示图片曝光精确度的手段,其描述的是图片显示范围内影像的灰度分布曲线。它可以帮助分析图片的曝光水平等一些信息。直方图的左边显示了图像的阴影信息,直方图的中间显示了图像的中间色调信息,直方图的右边显示了图像的高亮信息。直方图的横轴从左到右代表照片从黑(暗部)到白(亮度)的像素数量,其左边最暗处的Level 值为0,而右边最亮处的Level 值为255。直方图的垂直轴方向代表了在给定的Level 值下的像素的数目。
2. 直方图均衡化是什么意思?它的主要用途是什么?
答:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
实验三、图像压缩
一、
实验目的
1. 理解有损压缩和无损压缩的概念; 2. 理解图像压缩的主要原则和目的; 3. 了解几种常用的图像压缩编码方式。 4. 利用MATLAB 程序进行图像压缩。
二、 实验原理
1. 图像压缩原理
图像压缩主要目的是为了节省存储空间,增加传输速度。图像压缩的理想标准是信息丢失最少,压缩比例最大。不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。
信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。
编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。
(1). 冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。
(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。也就是说解码图像和原始图像是有差别的,允许有一定的失真。
应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类: (1)无损压缩编码种类
哈夫曼(Huffman )编码,算术编码,行程(RLE )编码,Lempel zev编码。 (2)有损压缩编码种类
预测编码,DPCM ,运动补偿;
频率域方法:正交变换编码(如DCT) ,子带编码; 空间域方法:统计分块编码;
模型方法:分形编码,模型基编码;
基于重要性:滤波,子采样,比特分配,向量量化; (3)混合编码。
有JBIG ,H261,JPEG ,MPEG 等技术标准。
本实验主要利用MA TLAB 程序进行离散余弦变换(DCT )压缩和行程编码(Run Length Encoding , RLE )。
1) 离散余弦变换(DCT)图像压缩原理
离散余弦变换DCT 在图像压缩中具有广泛的应用,它是JPEG 、MPEG 等数据压缩标准的重要数学基础。
和相同图像质量的其他常用文件格式(如GIF(可交换的图像文件格式) ,TIFF(标签图像文件格式) ,PCX(图形文件格式)) 相比,JPEG 是目前静态图像中压缩比最高的。JPEG 比其他几种压缩比要高得多,而图像质量都差不多(JPEG处理的图像只有真彩图和灰度图) 。正是由于其高压缩比,使得JPEG 被广泛地应用于多媒体和网络程序中。JPEG 有几种模式,
其中最常用的是基于DCT 变换的顺序型模式,又称为基本系统(Baseline)。 用DCT 压缩图像的过程为:
(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT 变换。
(2)将变换后得到的量化的DCT 系数进行编码和传送,形成压缩后的图像格 式。
用DCT 解压的过程为:
(1)对每个8×8或16×16块进行二维DCT 反变换。 (2)将反变换的矩阵的块合成一个单一的图像。
余弦变换具有把高度相关数据能量集中的趋势,DCT 变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT 系数值非常接近于0。对于通常的图像来说,舍弃这些接近于0的DCT 的系数值,并不会对重构图像的画面质量带来显著的下降。所以,利用DCT 变换进行图像压缩可以节约大量的存储空间。压缩应该在最合理地近似原图像的情况下使用最少的系数。使用系数的多少也决定了压缩比的大小。
在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。在压缩过程的第2步,还可以采用RLE 和Huffman 编码来进一步压缩。
2) 行程编码(RLE )原理: 例如如下这幅 的二值图像,
如果采用行程编码可以按如下格式保存
其中10和8表示图像的宽和高。在这个小例子中行程编码并没有起到压缩图像的作用。这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。很多位图文件格式都采用行程编码,如TIFF ,PCX ,GEM ,BMP 等。
3. 图像压缩编码的MA TLAB 程序语句
1) 利用DCT 变换进行图像压缩的MATLAB 程序 RGB = imread('原图像名.tif'); I = rgb2gray(RGB);
J = dct2(I);
imshow(log(abs(J)),[]), colormap(jet(64)), colorbar J(abs(J)
figure,imshow(K,[0 255])
2)利用离散余弦变换进行JPEG 图像压缩 I=imread(‘原图像名.tif ’); %读入原图像;
I=im2double(I); %将原图像转为双精度数据类型; T=dctmtx(8); %产生二维DCT 变换矩阵
B=blkproc(I,[8 8],’P1*x*P2’,T,T ’); %计算二维DCT ,矩阵T 及其转置T ’是DCT 函数
P1*x*P2的参数
Mask=[ 1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT 系数,只留下
DCT 系数中左上角的10个
B2=blkproc(B,[8 8],’ P1.*x.’,mask); %只保留DCT 变换的10个系数 I2= blkproc(B2,[8,8],’P1*x*P2’,T ’,T); %逆DCT ,重构图像 Subplot(1,2,1);
Imshow(I);title(‘原图像’) ; %显示原图像 Subplot(1,2,2);
Imshow(I2);title(‘压缩图像’) ;%显示压缩后的图像。对比原始图像和压缩后的图像,
虽然舍弃了85%的DCT 系数,但图像仍然清晰(当然有一些质量损失)
3)利用行程编码(RLE )进行图像压缩 I=checkerboard(10,2); %调入原图像 [m n]=size(I); J=[]; for i=1:m
value=I(i,1); num=1; for j=2:n
if I(i,j)==value num=num+1; else
J=[J num value]; num=1;
value=I(i,j); end end
I=[J num value 0 0]; %添加的行判断位 0 0 end
disp(‘原图像大小:’) whos(‘I ’);
disp(‘压缩图像大小:’) whos(‘J ’);
disp(‘图像的压缩比:’) disp(m*n/length(J))
三、 实验步骤
1打开计算机,启动MA TLAB 程序;
2调入已获取的数字图像,并进行数据的行程(RLE )编码压缩处理;
3 将原图像在Photoshop 软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。
4记录和整理实验报告
四、 实验仪器
1计算机;
2 MATLAB 、Photoshop 等程序; 3移动式存储器(软盘、U 盘等)。
五、 实验报告内容
(一) 通过DCT 对图像进行压缩,实验结果如图:
(二) 通过RLE 对图像进行压缩,实验结果如图:
六、 思考题
1. 图像中哪些信息是主要的,哪些信息是次要的?
答:图像中压缩比是主要的信息,图像大小是次要的信息。
2.简述离散余弦变换(DCT )和行程编码(RLE )的原理。
答:离散余弦变换的原理:DCT 相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数) ,在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的) 。
行程编码的基本原理是:用一个符号值或串长代替具有相同值的连续符号(连续符号构成了一段连续的“行程”,行程编码因此而得名),使符号长度少于原始数据的长度。