数字图像处理教案于使用方法.docx
《数字图像处理教案于使用方法.docx》由会员分享,可在线阅读,更多相关《数字图像处理教案于使用方法.docx(27页珍藏版)》请在冰豆网上搜索。
数字图像处理教案于使用方法
教案
2008-2009年第1学期
《数字图像处理》教案
教学院(部)电气与电子信息工程学院
教研室电信教研室
授课班级05电信1、206电信本
授课教师李玉平
职称职务
教材名称数字图像处理
2008年9月5日
实验一、数字图像获取
一、实验目的
1掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法;
2修改图像的存储格式。
二、实验原理
用扫描仪获取图像也是图像的数字化过程的方法之一。
电视棒
扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。
扫描仪的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。
各类扫描仪都标明了它的光学分辨率和最大分辨率。
分辨率的单位是dpi,dpi是英文DotPerInch的缩写,意思是每英寸的像素点数。
扫描仪工作时,首先由光源将光线照在欲输入的图稿上,产生表示图像特征的反射光(反射稿)或透射光(透射稿)。
光学系统采集这些光线,将其聚焦在CCD上,由CCD将光信号转换为电信号,然后由电路部分对这些信号进行A/D转换及处理,产生对应的数字信号输送给计算机。
当机械传动机构在控制电路的控制下,带动装有光学系统和CCD的扫描头与图稿进行相对运动,将图稿全部扫描一遍,一幅完整的图像就输入到计算机中去了。
图1.1扫描仪的工作原理
扫描仪扫描图像的步骤是:
首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。
为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。
至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。
扫描仪每扫一行就得到原稿x方向一行的图像信息,随着沿y方向的移动,在计算机内部逐步形成原稿的全图。
在扫描仪的工作过程中,有两个元件起到了关键的作用。
一个是CCD,它将光信号转换成为电信号;另一个是A/D变换器,它将模拟电信号变为数字电信号。
CCD是ChargeCoupleDevice的缩写,称为电荷耦合器件,它是利用微电子技术制成的表面光电器件,可以实现光电转换功能。
CCD在摄像机、数码相机和扫描仪中应用广泛,只不过摄像机中使用的是点阵CCD,即包括x、y两个方向用于摄取平面图像,而扫描仪中使用的是线性CCD,它只有x一个方向,y方向扫描由扫描仪的机械装置来完成。
CCD芯片上有许多光敏单元,它们可以将不同的光线转换成不同的电荷,从而形成对应原稿光图像的电荷图像。
如果我们想增加图像的分辨率,就必须增加CCD上的光敏单元数量。
实际上,CCD的性能决定了扫描仪的x方向的光学分辨率。
A/D变换器是将模拟量(Analog)转变为数字量(Digital)的半导体元件。
从CCD获取的电信号是对应于图像明暗的模拟信号,就是说图像由暗到亮的变化可以用从低到高的不同电平来表示,它们是连续变化的,即所谓模拟量。
A/D变换器的工作是将模拟量数字化,例如将0至1V的线性电压变化表示为0至9的10个等级的方法是:
0至小于0.1V的所有电压都变换为数字0、0.1至小于0.2V的所有电压都变换为数字1……0.9至小于1.0V的所有电压都变换为数字9。
实际上,A/D变换器能够表示的范围远远大于10,通常是2^8=256、2^10=1024或者2^12=4096。
如果扫描仪说明书上标明的灰度等级是10bit,则说明这个扫描仪能够将图像分成1024个灰度等级,如果标明色彩深度为30bit,则说明红、绿、蓝各个通道都有1024个等级。
显然,该等级数越高,表现的彩色越丰富。
三、实验步骤
1扫描仪与计算机和打印机的连接;
2打开计算机,安装扫描仪的驱动程序;
3分别相描一幅二值、灰度和彩色因像
4调整彩色图像的色彩。
5将获得的图像的格式转换为“*.gif”的格式,保存或拷贝到MATLAB程序组根目录的“work”文件夹中,以便后面的实验做为“原图像”利用。
6记录和整理实验报告
四、实验仪器
1计算机;
2扫描仪(或数码相机、数字摄象机)及其驱动程序盘;
3图像处理软件(画图,photoshop,Microsoftphotoedit等);
4记录用的笔、纸。
五、实验报告内容
六、思考题
1扫描仪有哪些重要指标?
幅面大小、分辨率、颜色数、接口方式
2你使用过哪些图像获取设备呢?
数码相机、摄相机、扫描仪
实验二、图像的傅立叶变换
一、实验目的
1了解图像变换的意义和手段;
2熟悉傅里叶变换的基本性质;
3热练掌握FFT方法与应用;
4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。
二、实验原理
1应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2傅立叶(Fourier)变换的定义
对于二维信号,二维Fourier变换定义为:
二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
三、实验步骤
1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2利用MatLab工具箱中的函数编制FFT频谱显示的函数;
3a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;
b)对这三幅图像做FFT并利用自编的函数显示其频谱;
c)讨论不同的图像内容与FFT频谱之间的对应关系。
4记录和整理实验报告。
四、实验仪器
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
3利用MATLAB软件实现数字图像傅立叶变换的程序:
五、实验程序
I=imread(‘原图像名.gif’);%读入原图像文件
subplot(1,2,1),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;%归一化
subplot(1,2,2),imshow(A);%显示原图像的频谱
六、实验结果
七、思考题
1.傅里叶变换有哪些重要的性质?
(1)周期性和共轭对称性
(2)可分性
2.图像的二维频谱在显示和处理时应注意什么?
对图像进行中心化处理
实验三、图像增强
一、实验目的
1掌握灰度直方图的概念及其计算方法;
2熟练掌握直力图均衡化和直方图规定化的计算过程;
3熟练掌握空域滤波中常用的平滑和锐化滤波器;
4掌握色彩直方图的概念和计算方法
5利用MATLAB程序进行图像增强。
二、实验原理
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本实验以直方图均衡化增强图像对比度的方法为主要内容,其他方法同学们可以在课后自行联系。
直方图是多种空间城处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。
直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
三、实验步骤
1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3显示原图像的直方图和经过均衡化处理过的图像直方图。
4记录和整理实验报告
四、实验仪器
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验程序
下面给出直方图均衡化增强图像对比度的MATLAB程序:
1、灰度变换增强图像对比度的MATLAB程序:
•A1=imread('D:
\image\玫瑰.JPG');%读入图像
•A=rgb2gray(A1)
•subplot(2,3,1),imshow(A1);
•subplot(2,3,2),imshow(A);%显示图像
•subplot(2,3,3),imhist(A);%显示图像的直方图
•J1=imadjust(A,[0.150.55],[]);
•%函数将图像在0.3*255~0.7*255灰度之间的值通过线性变换映射到0~255之间
•subplot(2,3,4),imshow(J1);%输出图像效果图
•subplot(2,3,5),imhist(J1)
2、直方图均衡化增强图像对比度的MATLAB程序:
A=imread(‘菩萨.jpg');
I=histeq(A);%调用函数完成直方图均衡化
subplot(1,2,1),imshow(A);title(‘原图像’);%直方图均衡化前的图像效果
subplot(1,2,2),imshow(I);title(‘直方图均衡化后的图像’);%直方图均衡化后的图像效果
figure,subplot(1,2,1),imhist(A);Title(‘原图像直方图’);%均衡化前的直方图
subplot(1,2,2),imhist(I);title(‘均衡变换后的直方图’);%均衡化后的直方图
六、实验报告内容
灰度变换增强图像
直方图均衡化增强图像
处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。
从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在增强处理后所得到的图像中都变得十分清晰。
七、思考题
1.直方图是什么概念?
它反映了图像的什么信息?
直方图是指图像中各种不同灰度级像素出现的相对频率。
灰度直方图描述了图像的概貌。
2.直方图均衡化是什么意思?
它的主要用途是什么?
通过对原图像进行某种变换,使得图像的直方图变为均匀分布的直方图,直方图变换后可使图像的灰度间距拉开或使灰度分布均匀,从而增大对比度,使图像细节清晰,达到增强的目的。
实验四、图像压缩
一、实验目的
1.理解有损压缩和无损压缩的概念;
2.理解图像压缩的主要原则和目的;
3.了解几种常用的图像压缩编码方式。
4.利用MATLAB程序进行图像压缩。
二、实验原理
1.图像压缩原理
图像压缩主要目的是为了节省存储空间,增加传输速度。
图像压缩的理想标准是信息丢失最少,压缩比例最大。
不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。
压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。
信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。
高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。
编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。
(1).冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。
具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。
(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。
也就是说解码图像和原始图像是有差别的,允许有一定的失真。
应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:
(1)无损压缩编码种类
哈夫曼(Huffman)编码,算术编码,行程(RLE)编码,Lempelzev编码。
(2)有损压缩编码种类
预测编码,DPCM,运动补偿;
频率域方法:
正交变换编码(如DCT),子带编码;
空间域方法:
统计分块编码;
模型方法:
分形编码,模型基编码;
基于重要性:
滤波,子采样,比特分配,向量量化;
(3)混合编码。
有JBIG,H261,JPEG,MPEG等技术标准。
本实验主要利用MATLAB程序进行离散余弦变换(DCT)压缩和行程编码(RunLengthEncoding,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等。
三、实验步骤
1打开计算机,启动MATLAB程序;
2调入“实验一”中获取的数字图像,并进行数据的行程(RLE)编码压缩处理;
3将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。
4记录和整理实验报告
四、实验仪器
1计算机;
2MATLAB、Photoshop等程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验程序
图像压缩编码的MATLAB程序语句
1利用DCT变换进行图像压缩的MATLAB程序
RGB=imread('原图像名.tif');
I=rgb2gray(RGB);
J=dct2(I);
imshow(log(abs(J)),[]),colormap(jet(64)),colorbar
J(abs(J)<10)=0;
K=idct2(J);
figure,imshow(I)
figure,imshow(K,[0255])
2利用离散余弦变换进行JPEG图像压缩
I=imread(‘原图像名.tif’);%读入原图像;
I=im2double(I);%将原图像转为双精度数据类型;
T=dctmtx(8);%产生二维DCT变换矩阵
B=blkproc(I,[88],’P1*x*P2’,T,T’);%计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数
Mask=[11110000
11100000
11000000
10000000
00000000
00000000
00000000
00000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个
B2=blkproc(B,[88],’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);%调入原图像
[mn]=size(I);
J=[];
fori=1:
m
value=I(i,1);
num=1;
forj=2:
n
ifI(i,j)==value
num=num+1;
else
J=[Jnumvalue];
num=1;
value=I(i,j);
end
end
I=[Jnumvalue00];%添加的行判断位00
end
disp(‘原图像大小:
’)
whos(‘I’);
disp(‘压缩图像大小:
’)
whos(‘J’);
disp(‘图像的压缩比:
’)
disp(m*n/length(J))
六、实验报告内容
DCT变换进行的图像压缩
离散余弦变换进的JPEG图像压缩
七、思考题
简述离散余弦变换(DCT)和行程编码(RLE)的原理。
离散余弦变换(DCT)是通过数学变换可以改变信号能量的分布,从而压缩信息量。
行程编码(RLE)是一种简单的无损编码技术,它改变连续出现相同字符的表达方式,以降低码长,传真的二值图像中,连“0”或连“1”总是成串出现,称为“白游程”和“黑游程”。
非二值的相同连续数据串,同样简化为两个符号:
一个符号代表数据,第二个代表串长。
实验五、图像复原
一、实验目的
1了解图像退化原因与复原技术分类化的数学模型;
2熟悉图像复原的经典与现代方法;
3热练掌握图像复原的应用;
4、通过本实验掌握利用MATLAB编程实现数字图像的图像复原。
二、实验原理
图像复原是在研究图像退化原因的基础上,以退化图像为依据,根据一定的先验知识,建立一个退化模型,然后用相反的运算,以恢复原始景物图像。
本实验以约束复原方法对图像复原。
约束复原除了对降质系统的PSF有所了解外,还需要对原始图像和外加噪声的特性有先验知识。
即根据不同领域的要求,有时需要对f和n作一些特殊的规定,使处理得到的图像满足某些条件。
令Q为f的线性算子,要设法寻找一个最优估计的、服从约束条件
–的函数最小化。
令Q为f的线性算子,要设法寻找一个最优估计
–使下面的目标函数为最小
式中,α为拉格朗日乘子,f的最佳估值
式中,γ=α-1
1、维纳滤波复原
最小二乘法滤波复原的核心是如何选择一个合适的变换矩阵Q,将f和n近似地看成是平稳随机过程。
假设Rf和Rn为f和n的自相关矩阵,就是维纳滤波复原。
Rf=E{ffT}
Rn=E{nnT}
定义QTQ=R-1fRn,代入上式,得
假设M=N,Sf和Sn分别为图像和噪声的功率谱,则
2、平滑度约束最小平方滤波
在图像复原时会产生人为的噪声和边缘,通过拉普拉斯算子增强可以抑制,这就是平滑度约束最小平方滤波。
三、实验步骤
1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2利用MatLab工具箱中的函数编制图像复原的函数;
3a).调入、显示“实验一”获得的图像;图像存储格式应为“.gif”;
b)对图像做维纳滤波复原;
c)对图像做平滑度约束最小平方滤波。
4记录和整理实验报告。
四、实验仪器
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
3利用MATLAB软件实现数字图像傅立叶变换的程序:
五、实验程序
1、维纳滤波复原MATLAB程序
Blurred=imread(‘flower.gif’);
len=28
thea=24
PSF=fspecial(‘motion’,len,theta);
wnrl=deconvwnr(Blurred,PSF);
Figure,imshow(wnrl);
wnr2=deconvwnr(Blurred,fspecial(‘motion’,2*len,theta));
Figure,imshow(wnr2);
wnr3=deconvwnr(Blurred,fspecial(‘motion’,len,2*theta));
Figure,imshow(wnr3);
2、平滑度约束最小平方滤波复原MATLAB程序
I=imread('rice.jpg');
blurrednoisy=imnoise(I