数字图像处理实验指导书matlab1.docx
《数字图像处理实验指导书matlab1.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验指导书matlab1.docx(22页珍藏版)》请在冰豆网上搜索。
数字图像处理实验指导书matlab1
数字图像处理实验报告
姓名
雷宇亭2011021167
王潇锋2011021165
实验内容
实验一、空域图像处理
班级
信号处理113班
指导老师
曾强宇
时间
2014.4.28
一、实验目的
1熟悉MATLAB基本图像操作;
2结合实例学习如何在程序中增加图像处理算法;
3理解和掌握图像的线性变换和直方图均衡化的原理和应用;
4了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;
5了解噪声模型及对图像添加噪声的基本方法。
二、实验原理
1灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。
2直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。
按照图像概率密度函数PDF的定义:
通过转换公式获得:
3均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。
将模板中的全体像素的均值(中值)来代替原来像素值的方法。
4拉普拉斯算子如下:
拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。
三、实验步骤
1启动MATLAB程序,对图像文件分别进行灰度线性变换、直方图均衡化、均值滤波、中值滤波和拉普拉斯锐化操作;添加噪声,重复上述过程观察处理结果。
2记录和整理实验报告
四、实验仪器
1计算机;
2MATLAB程序;
3记录用的笔、纸。
五、实验内容及结果
实验内容:
1.将实验库中的任意一副彩色图像转化为灰度图像。
(rgb2gray)
2.将实验库中的任意一副彩色图像转化为灰度图像后,进行图像求反操作和使用Gamma校正压缩图像的动态范围。
3.对任意灰度图像进行直方图均衡。
4.对任意灰度图像使用3*3和5*5的模板进行均值和中值(order)滤波。
5.使用拉普拉斯算子对图像进行处理。
实验结果附程序:
clc;clearall;closeall;
I=imread('1.jpg');
figure();
subplot(231);imshow(I);title('源图像');
I=rgb2gray(I);
subplot(232);imshow(I);title('灰度图像');
subplot(233);imshow(255-I,[]);title('图像求反');
J=im2double(I);nw=J.*0.3;
subplot(234);imshow(nw);title('gamma校正');
J1=histeq(J);
subplot(235);imshow(J1);title('直方图均衡');
BW=edge(I,'log');
subplot(236);imshow(BW);title('拉普拉斯算子处理');
J2=filter2(fspecial('average',3),I)/255;
J3=filter2(fspecial('average',5),I)/255;
J4=medfilt2(I,[33]);
J5=medfilt2(I,[55]);
figure();
subplot(221);imshow(J2);title('3x3均值滤波');
subplot(222);imshow(J3);title('5x5均值滤波');
subplot(223);imshow(J4);title('3x3中值滤波');
subplot(224);imshow(J5);title('5x5中值滤波');
六、思考题
1.设定不同的斜率值和截距,显示效果会怎样?
2.直方图均衡化是什么意思?
它的主要用途是什么?
答:
直方图均衡化就是通过变换函数将原图像的直方图修正为平坦的直方图,以此来修正原图像之灰度值。
它的主要用途是达到清晰图像的目的。
3.均值(中值)滤波的模板大小对处理效果有什么影响?
答:
模板尺寸越大,噪声减小的效果越显著。
数字图像处理实验报告
姓名
雷宇亭2011021167
王潇锋2011021165
实验内容
实验二、图像变换技术
班级
信号处理113班
指导老师
曾强宇
时间
2014.5.4
一、实验目的
1了解图像变换的意义和手段;
2熟悉傅里叶变换的基本性质;
3热练掌握FFT方法及应用;
4通过实验了解二维频谱的分布特点;
5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换及滤波锐化和复原处理;
6了解理想、巴特沃兹、高斯等不同滤波器的结构及滤波效果。
二、实验原理
1应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2傅立叶(Fourier)变换的定义
对于二维信号,二维Fourier变换定义为:
二维离散傅立叶变换为:
图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
3利用MATLAB软件实现数字图像傅立叶变换的程序:
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打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2利用MatLab工具箱中的函数编制FFT频谱显示的函数;
3a).调入、显示图像;图像存储格式应为“.gif”;
b)对图像做FFT并利用自编的函数显示其频谱;
c)讨论不同的图像内容与FFT频谱之间的对应关系。
4对频谱分别进行高斯、巴特沃兹、高斯高通和低通滤波,比较其锐化和平滑效果
5记录和整理实验报告。
四、实验仪器
1计算机;
2MATLAB程序;
3移动式存储器(软盘、U盘等)。
4记录用的笔、纸。
五、实验内容
1.对图像库中的任意彩色和任意灰度图像进行FFT,显示其频谱。
I=imread('1.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);%显示原图像的频谱
实验结果:
2.对频谱使用Butterworth高通和低通滤波器滤波。
显示实验结果(结果需进行IFFT)。
Butterworth低通滤波器程序:
clc;clearall;closeall
I=imread('1.jpg');
I1=rgb2gray(I);
figure;subplot(221);imshow(I1);title('灰度图像');
f=double(I1);
g=fft2(f);g=fftshift(g);
F2=log(abs(g));
subplot(222);imshow(F2,[],'InitialMagnification','fit');title('图像频谱图');
colormap(jet);
%colorbar
[N1,N2]=size(g);
n=2;
d0=5;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d/d0)^(2*n));
end
result(i,j)=h*g(i,j);
end
end
F3=log(abs(result));
subplot(223);imshow(F3,[],'InitialMagnification','fit');title('低通滤波后的频谱');
colormap(jet);
%colorbar
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
subplot(224);imshow(X3);title('滤波后的图像');
图像经过butterworth低通滤波后的结果:
Butrerworth高通滤波程序:
clc;clearall;closeall
I=imread('1.jpg');
I1=rgb2gray(I);
figure();subplot(221);imshow(I1);title('原图像');
f=double(I1);
g=fft2(f);
g=fftshift(g);
F2=log(abs(g));
subplot(222);imshow(F2,[],'InitialMagnification','fit');title('图像的频谱图');
colormap(jet);
%colorbar
[N1,N2]=size(g);
n=2;
d0=5;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d0/d)^(2*n));
end
result(i,j)=h*g(i,j);
end
end
F3=log(abs(result));
subplot(223);imshow(F3,[],'InitialMagnification','fit');title('滤波后的频谱图');
colormap(jet);
%colorbar
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
subplot(224);imshow(X3);title('butter高通滤波后的图像');
六、思考题
1.傅里叶变换有哪些重要的性质?
答:
线性,时频对偶性,展缩(尺度变换)特性,时移特性频移特性与调幅波,微分特性,反褶与共轭特性
2.图像的二维频谱在显示和处理时应注意什么?
答:
图像中心是原图形的高频部分,四角是低频部分。
数字图像处理实验报告
姓名
雷宇亭2011021167
王潇锋2011021165
实验内容
实验三、图像的几何变换
班级
信号处理113班
指导老师
曾强宇
时间
2014.5.5
一、实验目的
1熟悉MATLAB的操作和基本功能;
2理解和掌握图像的平移、垂直镜像变换、水平镜像变换、缩放和旋转的原理和应用;
二、实验原理
1初始坐标为(
)的点经过平移(
,
),坐标变为(
,
),两点之间的关系为:
,以矩阵形式表示为:
2图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为:
3图像缩小和放大变换矩阵相同:
当
时,图像缩小;
时,图像放大。
4图像旋转定义为以图像中某一点为原点以逆时针或顺时针方向旋转一定角度。
其变换矩阵为:
该变换矩阵是绕坐标轴原点进行的,如果是绕一个指定点(
)旋转,则现要将坐标系平移到该点,进行旋转,然后再平移回到新的坐标原点。
三、实验步骤
1启动MATLAB程序,对图像文件分别进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作,与实验箱运行结果进行比对;
2记录和整理实验报告
四、实验仪器
1计算机;
2MATLAB程序;
3记录用的笔、纸。
实验内容
1.对图像库中的任意图像进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作。
2.对图像库中的任意图像使用Sobel算子提取边缘。
五、实验报告内容
1叙述实验过程;
%实验内容
%1.对图像库中的任意图像进行平移、垂直镜像变换、水平镜像变换、缩放和旋转操作。
%2.对图像库中的任意图像使用Sobel算子提取边缘。
clc;closeall;clearall;
%%
f=imread('sy1.jpg');
figure
(1);subplot(1,2,1);imshow('sy1.jpg');title('原图');
%%
[m,n,x]=size(f);f=double(f);
fori=1:
10
mx=10*i;
my=10*i;
g=zeros(m,n,x)+255;
%g(mx+1:
m,my+1:
n,1:
x)=f(1:
m-mx,1:
n-my?
1:
x);?
g(1:
m-mx,1:
n-my,1:
x)=f(mx+1:
m,my+1:
n,1:
x);
end
subplot(1,2,2);imshow(uint8(g));title('平移');
%%
f=double(f);h=size(f);
f_fliplr(1:
h
(1),1:
h
(2),1:
h(3))=f(1:
h
(1),h
(2):
-1:
1,1:
h(3));
g=uint8(f_fliplr);
figure
(2);subplot(1,2,1);imshow(uint8(g));title('水平镜像');%水平镜像变换
f2=imrotate(g,45,'crop');
subplot(1,2,2);imshow(uint8(f2));title('顺时针旋转45度');
%%
h=size(f);
f1=zeros(h
(1)+round(h
(2)*tan(pi/6)),h
(2),h(3));
form=1:
h
(1)
forn=1:
h
(2)
f1(m+round(n*tan(pi/6)),n,1:
h(3))=f(m,n,1:
h(3));
end
end
figure(3);subplot(1,2,1);imshow(uint8(f1));title('水平30度');
f_flipud(1:
h
(1),1:
h
(2),1:
h(3))=f(h
(1):
-1:
1,1:
h
(2),1:
h(3));%垂直镜像变换
f1=uint8(f_flipud);
subplot(1,2,2);imshow(uint8(f1));title('垂直镜像');
%%
f2=imresize(f,0.4,'bilinear');%nearest,bilinear,bicubic三种不同的插值算法
figure(4);imshow(uint8(f2));title('缩放0.4倍');
f3=imresize(f,1.5,'bilinear');
figure(5);imshow(uint8(f3));title('放大1.5倍');
%%
f4=imread('sy1.jpg');
grayPic=rgb2gray(f4);%转换成灰度图像
newGrayPic=edge(grayPic,'sobel');
figure(6);imshow(newGrayPic);title('Sobel算子锐化后的图像');
2提交实验的原始图像和结果图像。
数字图像处理实验报告
姓名
雷宇亭2011021167
王潇锋2011021165
实验内容
实验四、图像分割
班级
信号处理113班
指导老师
曾强宇
时间
2014.5.5
一、实验目的
1熟悉MATLAB的操作和基本功能;
2理解和掌握图像分割的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行分割处理;
二、实验原理
1膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下:
膨胀:
腐蚀:
2图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。
按照使用图像的特点可以分为两类:
利用区域间灰度不连续性――基于边界检测
利用区域内灰度的相似性――基于区域分割
三、实验步骤
1打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件;
2对于图像
a).对图像进行去噪、增强处理;
b)运用全局阀值进行二值化;
c)用膨胀腐蚀等形态学方法将血细胞分成不同的连通域,并使用贴标签的方式对连通域进行统计和标记。
3对于文字图像
a).对图像进行去噪、增强处理;
b)运用局部阀值进行二值化;
c)用膨胀腐蚀等形态学方法将成不同的连通域,并使用贴标签的方式对连通域进行统计和标记,实现文字提取。
4记录和整理实验报告。
四、实验仪器
1计算机;
2MATLAB程序;
3记录用的笔、纸。
五、实验报告内容
1叙述实验过程;
2提交实验的原始图像、结果图像和统计信息。
实验内容
1.选取任意图像库中图像进行全局二值化。
2.对二值化以后的图像进行腐蚀和膨胀操作。
3.对二值化以后的图像进行开和闭操作。
clc;closeall;clearall;
I=imread('sy1.jpg');
%----------灰度化----------------
ifsize(I,3)~=1
Y=rgb2gray(I);
else
Y=I;
end
level=graythresh(Y);%全局阈值便是level*255
bw=im2bw(Y,level);
figure,imshow(bw),title('Otsu法');
%%
SE=strel('arbitrary',eye(5));%创建腐蚀结构
bw2=imerode(bw,SE);
figure,imshow(bw2),title('腐蚀');
%%
SE=strel('square',3);
bw2=imdilate(bw,SE);
figure,imshow(bw2),title('3*3膨胀');
%%
SE=strel('square',10);
A=imopen(bw,SE);
figure,imshow(A);title('开');
%%
SE=strel('square',10);
A=imclose(bw,SE);
figure,imshow(A);title('闭');
六、思考题
1.除了形态学方法用其他方法如何实现图像分割?
基于阈值的分割方法、基于区域的分割方法以及基于特定理论的分割方法等
2.图像预处理的作用是什么?
可以将文字图像分检出来交给识别模块进行识别
基本函数:
膨胀:
imdilate
腐蚀:
imerode