数字图像处理实验报告.docx
《数字图像处理实验报告.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
数字图像处理实验报告
学生实验报告
(理工类)
课程名称:
数字图像处理专业班级:
电子信息工程
学生学号:
学生:
所属院部:
电子信息工程指导教师:
周洪成
2016——2017学年第1学期
金陵科技学院教务处制
实验报告书写要求
实验报告原则上要求学生手写,要求书写工整。
若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。
纸一律采用A4的纸。
实验报告书写说明
实验报告中一至四项容为必填项,包括实验目的和要求;实验仪器和设备;实验容与过程;实验结果与分析。
各院部可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。
(2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。
(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。
实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。
实验报告装订要求
实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。
实验项目名称:
2、图像增强实验学时:
2
同组学生:
实验地点:
A205
实验日期:
2016年11月08日实验成绩:
批改教师:
周洪成批改时间:
一、实验目的和要求
1掌握灰度直方图的概念及其计算方法;
2熟练掌握直力图均衡化和直方图规定化的计算过程;
3熟练掌握空域滤波中常用的平滑和锐化滤波器;
4掌握色彩直方图的概念和计算方法;
5利用MATLAB程序进行图像增强;
6了解频域高频和低频滤波器对图象处理的效果。
7平滑:
平滑的目的是模糊和消除噪声。
平滑是用低通滤波器来完成,在空域中全是正值;
8锐化:
锐化的目的是增强被模糊的细节。
锐化是用高通滤波器来完成,在空域中,接近原点处为正,在远离原点处为负。
二、实验仪器和设备
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
三、实验步骤
1打开计算机,启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2调入“实验一”中获取的数字图像,并进行计算机均衡化处理;
3显示原图像的直方图和经过均衡化处理过的图像直方图。
4记录和整理实验报告
四、实验过程
图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
其主要目的是处理后的图像对某些特定的应用比原来的图像更加有效。
图像增强技术主要有直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
本实验以直方图均衡化增强图像对比度的方法为主要容,其他方法同学们可以在课后自行联系。
直方图是多种空间处理技术的基础。
直方图操作能有效地用于图像增强。
除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,如图像压缩与分割。
直方图在软件中易于计算,也适用于商用硬件设备,因此,它们成为了实时图像处理的一个流行工具。
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
直方图均衡化的目的是使图像在整个灰度值动态变化围的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。
灰度直方图是图像预处理中涉及最广泛的基本概念之一。
图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。
直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果。
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
下面给出直方图均衡化增强图像对比度的MATLAB程序:
(1)计算出一幅灰度图像的直方图
clear
closeall
I=imread('004.bmp');
imhist(I)
title('实验一
(1)直方图');
(2)对灰度图像进行简单的灰度线形变换,
figure
subplot(2,2,1)
imshow(I);
title('试验2-灰度线性变换');
subplot(2,2,2)
histeq(I);
(3)看其直方图的对应变化和图像对比度的变化。
原图像f(m,n)的灰度围[a,b]线形变换为图像g(m,n),灰度围[a’,b’]
公式:
g(m,n)=a’+(b’-a’)*f(m,n)/(b-a)
figure
subplot(2,2,1)
imshow(I)
J=imadjust(I,[0.3,0.7],[0,1],1);
title('实验一(3)用g(m,n)=a’+(b’-a’)*f(m,n)/(b-a)进行变换');
subplot(2,2,2)
imshow(J)
subplot(2,2,3)
imshow(I)
J=imadjust(I,[0.50.8],[0,1],1);
subplot(2,2,4)
imshow(J)
(4)图像二值化(选取一个域值,(5)将图像变为黑白图像)
figure
subplot(2,2,1)
imshow(I)
J=find(I<150);
I(J)=0;
J=find(I>=150);
I(J)=255;
title('实验一(4)图像二值化(域值为150)');
subplot(2,2,2)
imshow(I)
clc;
I=imread('14499.jpg');
bw=im2bw(I,0.5);%选取阈值为0.5
figure;
imshow(bw)%显示二值图象
(5)利用低通邻域平均模板进行平滑:
I=imread('girl.bmp');
subplot(1,3,1);
imshow(I);
title('原图');
J=fspecial('average');
J1=filter2(J,I)/255;
subplot(1,3,2);
imshow(J1);
title('3*3滤波');
K=fspecial('average',9);
K1=filter2(K,I)/255;
subplot(1,3,3);
imshow(K1);
title('9*9滤波');
(6)中值滤波和平均滤波
I=imread('girl.bmp');
J=imnoise(I,'gaussian',0,0.01);
subplot(2,2,1);
imshow(I);
title('原图');
subplot(2,2,2);
imshow(J);
title('noise');
K=fspecial('average',5);
K1=filter2(K,J)/255;
subplot(2,2,3);
imshow(K1);
title('average');
L=medfilt2(J,[35]);
subplot(2,2,4);
imshow(L);
title('medium');
(7)高通滤波边缘增强
I=imread('girl.bmp');
subplot(2,2,1);
imshow(I);
title('originalpic');
J=fspecial('average',3);
J1=conv2(I,J)/255;
%J1=filter2(J,I)/255;
subplot(2,2,2);
imshow(J1);
title('3*3lowpass');
K=fspecial('prewitt');
K1=filter2(K,J1)*5;
subplot(2,2,3);
imshow(K1);
title('prewitt');
L=fspecial('sobel');
L1=filter2(L,J1)*5;
subplot(2,2,4);
imshow(L1);
title('sibel');
(8)边缘检测
分别用sobel和laplacian算子来进行,程序如下:
I=imread('girl.bmp');
subplot(1,3,1);
imshow(I);
title('originalpic');
K=fspecial('laplacian',0.7);
K1=filter2(K,I)/100;
subplot(1,3,2);
imshow(K1);
title('laplacian');
L=fspecial('sobel');
L1=filter2(L,I)/200;
subplot(1,3,3);
imshow(L1);
title('sibel');
处理后的图像直方图分布更均匀了,图像在每个灰度级上都有像素点。
从处理前后的图像可以看出,许多在原始图像中看不清楚的细节在直方图均衡化处理后所得到的图像中都变得十分清晰。
五、实验结果与分析
1、第1题结果如下:
2、第2题结果如下:
3、第3题结果如下:
4、第4题结果如下:
5、第5题结果如下:
6、第6题结果如下:
7、第7题结果如下:
8、第8题结果如下:
六、讨论、思考题
1.直方图是什么概念?
它反映了图像的什么信息?
答:
直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。
2.直方图均衡化是什么意思?
它的主要用途是什么?
答:
直方图均衡化是通过灰度变换将一幅图像转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。
它的主要用途是清晰图像。
七、实验心得
这次实验我学会了灰度直方图的概念及其计算方法;能够熟练掌握直力图均衡化和直方图规定化的计算过程,也学会了利用MATLAB程序进行图像增强,了解到频域高频和低频滤波器对图象处理的效果。
实验项目名称:
3、图像压缩实验学时:
2
同组学生:
实验地点:
A207
实验日期:
2016年11月10日实验成绩:
批改教师:
周洪成批改时间:
一、实验目的和要求
1.理解有损压缩和无损压缩的概念;
2.理解图像压缩的主要原则和目的;
3.了解几种常用的图像压缩编码方式;
4.利用MATLAB程序进行图像压缩;
5.对JPEG2000采用小波变换编码。
二、实验仪器和设备
1计算机;
2MATLAB、Photoshop等程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
三、实验步骤
1打开计算机,启动MATLAB程序;
2调入“实验一”中获取的数字图像,并进行数据的行程(RLE)编码压缩处理;
3将原图像在Photoshop软件中打开,分别以不同的位图文件格式进行“另保存”,比较它们的数据量。
4记录和整理实验报告。
四、实验过程
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等。
3.图像压缩编码的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))
4)JPEG2000采用小波变换编码,
小波变换压缩编码实现程序为
loadwbarb;
subplot(2,2,1),image(X);colormap(map)
title('原始图象');
[c,s]=wavedec2(X,2,'bior3.7');
thr=20;
ca1=appcoed2(c,s,'bior3.7',1);
ch1=detcoef2('h',c,s,1);
cv1=detcoef2('v',c,s,1);
cd1=detcoef2('d',c,s,1);
a1=wrcoef2('a',c,s,'bior3.7',1);
h1=wrcoef2('h',c,s,'bior3.7',1);
v1=wrcoef2('v',c,s,'bior3.7',1);
d1=wrcoef2('d',c,s,'bior3.7',1);
c1=[a1,h1,v1,d1];
ca1=appcoed2(c,s,'bior3.7',1);
ca1=wcodemat(ca1,440,'mat',0);
ca1=0.5*ca1
subplot(2,2,2),image(ca1)
title('压缩图象一')
ca2=appcoed2(c,s,'bior3.7',2);
ca2=wcodemat(ca2,440,'mat',0);
ca2=0.5*ca2;
subplot(2,2,3),image(ca2)
title('压缩图象二')
五、实验结果与分析
1、第1题结果如下:
2、第2题结果如下:
3、第3题结果如下:
4、第4题结果如下:
六、讨论、思考题
1.图像中哪些信息是主要的,哪些信息是次要的?
答:
图像中压缩比为主要信息,图片大小是次要的
2.简述离散余弦变换(DCT)和行程编码(RLE)的原理。
答:
用DCT压缩图像的过程为:
(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。
(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。
(3)对每个8×8或16×16块进行二维DCT反变换。
(4)将反变换的矩阵的块合成一个单一的图像。
七、实验心得
这次实验我理解了有损压缩和无损压缩的概念,理解图像压缩的主要原则和目的,了解了几种常用的图像压缩编码方式,学会了利用MATLAB程序进行图像压缩和对JPEG2000采用小波变换编码。
实验项目名称:
4、图像融合实验学时:
2
同组学生:
实验地点:
A205
实验日期:
2016年11月15日实验成绩:
批改教师:
周洪成批改时间:
一、实验目的和要求
1熟悉图像融合的意义和用途,理解图像融合的原理;
2掌握图像融合的一般方法;
3掌握运用MATLAB软件进行图像融合的操作;
4掌握数字图像水印的原理;
5理解数字图像水印嵌入和检测过程;
6进一步掌握Matlab在图像处理中的仿真功能。
二、实验仪器和设备
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等);
4记录用的笔、纸。
三、实验步骤
1打开计算机,启动MATLAB程序;
2调入“实验一”中获取的两幅数字图像,并进行三种方法的图像融合;
3显示并保存图像融合的结果。
4记录和整理实验报告。
四、实验过程
图像融合的目的把来自多传感器的数据互补信息合并成一幅新的图像,以改善图像的质量。
图像融合最简单的理解就是两个(或多个)图像间的相加运算。
这一技术广泛应用于多频谱图像理解和医学图像处理等领域。
主要分为空域和频域相加。
本实验主要应用MATLAB软件进行两幅图像的融合。
方法有:
1图像直接融合;
2图像傅立叶变换融合;
3图像小波变换融合。
图像融合的MATLAB程序如下:
1)调入、显示两幅图像的程序语句
loadtartan;
X1=X;map1=map;
Loadsinsin;
X2=X;map2=map;%打开图像
Subplot(121)
Image(X1),colormap(map1);
Title(‘图像map1’)
Subplot(122)
Image(X2),colormap(map2);
Title(‘图像map2’)%显示两幅图像
2)两幅图像直接融合的程序语句
figure,subplot(131)
image((X1+X2)/2),colormap(map2);%在空域直接融合
title(‘两图像直接相加融合’)%显示融合后的图像,并命名为“两图像直接相加融合”
3)两幅图像傅立叶变换融合的程序语句
F1=fft2(X1);
F2=fft2(X2);%分别计算两幅图像的快速傅立叶变换
X=abs(ifft2(F1+F2)/2);%两幅图像在频域相加后的傅立叶逆变换
Subplot(132)
Image(X),colormap(map2);%显示融合后的图像
Title(‘两幅图像傅立叶变换融合’)%给融合后的图像命名并显示在图上
4)两幅图像小波变换融合的程序语句
[C1,L1]=wavedec2(X1,2,‘sym4’);
[C2,L2]=wavedec2(X2,2,‘sym4’);%分别对两幅原图像进行小波分解
C=C1+C2;%