视觉检测技术MATLAB数字图像处理Word格式.docx
《视觉检测技术MATLAB数字图像处理Word格式.docx》由会员分享,可在线阅读,更多相关《视觉检测技术MATLAB数字图像处理Word格式.docx(24页珍藏版)》请在冰点文库上搜索。
2.R.C.,R.E.,S.L.。
《数字图像处理》(版)。
电子工业出版社,2005。
3.徐飞,施晓红。
《应用图像处理》。
西安:
西安电子科技大学出版社,
2002。
三、实验方案
此方案为参考方案,鼓励学生提出自己的方案。
实现直方图均衡化的实现步骤:
1.列出原始图像的灰度级
其中L是灰度级的个数。
2.统计各灰度级的像素数目
。
3.计算原始图像直方图各灰度级的频数
,其中n为原始图像总的像素数目。
4.计算累积分布函数
5.应用以下公式计算映射后的输出图像的灰度级
,P为输出图像灰度级的个数:
其中,为取整符号
6.统计映射后各灰度级的像素数目
7.计算输出直方图
8.用
的映射关系修改原始图像的灰度级,从而获得直方图近似为均匀分布的输出图像。
四、实验(设计)仪器设备和材料清单
1.计算机1台/每人
五、考核形式
1.验收调试结果;
2.实验报告
六、实验报告要求
1.技术路线;
2.程序;
3.运行结果;
4.心得体会
七、思考题
1.直方图均衡化的目的是使图像直方图尽可能地分布均匀,你有什么改进的思路?
2.你是如何理解步骤5的?
3.对实验中遇到的问题,进行讨论。
附录一:
数字图像处理
1简介
1.1主要用途及特点
主要用途:
算法研究
主要特点:
语句功能强大;
不能生成可执行文件。
1.2工作环境
1.2.1桌面
桌面包括5个子窗口:
命令窗口、工作空间窗口、当前目录窗口、历史命令窗口、一个或多个图形窗口(仅在用户显示图形式出现)。
命令窗口是用户在提示符(>
>
)处键入命令和表达式的地方,也是显示那些命令输出的地方。
工作空间窗口显示对话中创建的变量和它们的某些信息。
当前目录窗口显示当前目录的内容(即路径)。
历史命令窗口包含用户已在命令窗口中输入的命令的纪录。
1.2.2使用编辑器创建M文件
1.2.3获得帮助
(1)<
函数名>
(2)<
关键词>
2数字图像的读取、显示、保存、数据类型和图像类型、数据类型间的转换、图像类型间的转换
2.1图像的读取
语法:
(‘’)
说明:
读取图像
格式名称
描述
可识别扩展符
加标记的图像文件格式
联合图像专家组
图形交换格式
位图
可移植网络图形
X转储
语法:
[M,N](‘’)
说明:
给出一幅图像的行数和列数
2.2图像的显示
(f,G)
(f,[])
G是显示该图像的灰度级数;
小于或等于的值都显示为黑色,大于或等于的值都显示为白色。
[]自动将变量设置为f的最小值,将设置为f的最大值。
2.3图像的保存
(f,‘’)
保存图像
练习1
f=(‘’);
[M,N]=(f);
g=(‘’);
(f);
(g);
%显示另一幅图像
(f,‘s2’)
('
'
);
(f);
(g);
2.4数据类型
名称
双精度浮点数,范围为-10(308)~10(308),8字节
8
无符号8比特整数,1字节
16
无符号16比特整数,2字节
32
无符号32比特整数,4字节
有符号8比特整数,1字节
有符号16比特整数,2字节
有符号32比特整数,4字节
单精度浮点数,范围为-10(38)~10(38),4字节
字符
值为0或1
四种常用类型:
,8,,。
2.5图像类型
名称
亮度图像
8类范围为[0255]、类归一化为[01]
二值图像
图像取值只有0和1的逻辑数组
索引图像
图像
彩色图像
2.6数据类与图像类型间的转换
2.6.1数据类间的转换
B=(A)
举例:
若A是8位图像,则B=(A)转换为双精度图像。
2.6.2图像类型间的转换
函数名称
将输入转换为
有效的输入图像数据类
28
8,16和
216
8,16和
练习2
[12;
34];
2(f);
2(g,0.6)%0.6a
3亮度变换与空间滤波
3.1亮度变换函数
3.1.1基本亮度变换函数
(f,[],[])
将图像f中的亮度值影响到g中的新值,即将至之间的值映射到至之间的值,以下的值映射为,以上的值映射为。
参数指定了映射曲线的形状。
练习3
f=(‘’);
g1(f,[01],[10]);
(g1);
g2(f,[0.50.75],[10],0.5);
(g2);
3.1.2对比度拉伸变换
对数变换方法:
*(1(f))
对数变换的一项主要应用是压缩动态范围,常用于傅里叶频谱显示。
练习4
%
(F);
%将变换原点移到频率矩形的中心。
((),[]);
S2=(1+());
(S2,[]);
对比度拉伸方法:
1(1+(((f)).^E)
是浮点数的相对精度,可避免f出现0值时的溢出现象。
3.2直方图处理与函数绘图
3.2.1生成并绘制图像的直方图
(f,b)
(f,b)1(f)
b是用于形成直方图的灰度级的个数。
p是归一化直方图。
1(f)是求图像所有像素的灰度和的一个形式化的函数,需要自己编写。
例如:
(f),(s),这两条语句合在一起,就实现了图像所有像素的灰度求和。
练习5
(f);
3.2.2直方图均衡化
(f,)
是为输出图像制定的灰度级数。
练习6
(‘’);
%自动设定y轴坐标范围和刻度
(f,256);
3.3空间滤波
3.3.1线性空间滤波
(f,w,,,)
w为滤波掩模
选项
描述
滤波类型
‘’
滤波器通过使用相关来完成。
该值是默认值。
滤波器通过使用卷积来完成
边界选项
P
输入图像的边界通过用值P来扩展。
P的默认值为0。
图像大小通过复制外边界的值来扩展。
图像大小通过反射其边界来扩展。
图像大小通过将图像看成是一个二维周期函数的一个周期来扩展
大小选项
输出图像的大小与被扩展图像的大小相同
输出图像的大小与输入图像的大小相同
练习7
(31);
%单位矩阵掩模
();
(,[]);
3.3.2非线性空间滤波
略。
3.4图像处理工具箱的标准空间滤波器
3.4.1线性空间滤波器
(‘’)
见下表
练习8
w4(‘’,0)
w8=[111;
1-81;
111];
g4(f,(f,w4,‘’));
g8(f,(f,w8,‘’));
(g4);
(g8);
3.4.2非线性空间滤波器
2(f,,)
使用邻域的一组排序元素中的第个元素来代替f中的每个元素,而该邻域则由中的非零元素指定。
2(f,[mn])
中值滤波器。
指定了三个可能的边界填充选项之一。
‘’(默认值)。
‘’,镜像反射。
‘’,类图像,以1填充,否则以0填充。
练习9
(f,‘&
’,0.2);
%加椒盐噪声
2();
J=2(I,[mn])
进行二维适应性去噪过滤处理(维纳滤波)。
练习10
I=('
J=(I,'
0,0.005);
%加高斯噪声
K=2(J,[55]);
(J)
(K)
4频域处理
4.1在中计算并可视化二维
练习11
%计算傅里叶频谱
(S,[]);
频域滤波
4.2.1注意事项
假设函数f()和h()的大小分别为A×
B和C×
D,为了避免卷积运算造成的折叠误差(即混叠失真),必须通过对f和g补零,构造两个大小均为P×
Q的扩充寒暑,才能在频率域中进行运算。
其中,P、Q必须满足:
4.2.2滤波的基本步骤
1、对f和g进行补零。
2、对f和g分别进行傅里叶变换,得到频域F和H。
3、将变换乘以滤波函数
.*F;
4、获得G的傅里叶逆变换的实部:
(2(G));
5、讲左上部的矩形修建为原始大小:
(1(f,1),1(f,2));
练习12:
根据滤波的基本步骤,进行编程实现。
从空间滤波器获得频率滤波器
2(h,M,N)
M、N是滤波器的行数和列数,由被滤波的图像大小决定,是补零
的结果。
2(h,R,C)
计算滤波器的频率响应。
练习13
h=[111;
2(h,50,50);
在频率域中直接生成滤波器
练习题14:
编程实现在频率域中生成巴特沃兹低通滤波器(或高通滤波器,或高通强调滤波器)。
5形态学图像处理
5.1膨胀和腐蚀
5.1.1膨胀
A2(A,B)
B是结构元(由0和1组成的矩阵)。
练习15
(‘’);
[010;
111;
010];
A2(A,B);
(A);
(A2);
5.1.2结构元的生成
(,)
见下表。
5.1.3腐蚀
A2(A,B)
练习16
(‘’,1);
A2(A,);
(A2);
5.2膨胀和腐蚀的组合
5.2.1开运算和闭运算
(A,B)和()
练习17
(‘’,5);
();
5.2.2击中击不中变换
(A,B1,B2)
练习18
B1([0000;
0111;
0110]);
B2([1111;
1000;
1001]);
(f,B1,B2);
5.2.3形态学函数
(f,,n)
该函数可基于膨胀、腐蚀和查找表的组合实现许多有用的操作,n是一个用于指定将被重复操作次数的正整数。
说明见下表。
练习19
G1(f,‘’,1);
G2(f,‘’,1);
(f,‘’,);
(G1);
(G2);
5.3标记连通分量
[L,](f,)
用于指定连接类型(4连接获8连接),给出所找到的连接分量总数,L成为标记矩阵。
练习20
(‘1’);
[](f);
[](L==3);
(r);
(c);
(,,‘’,‘o’,‘’,‘k’,‘’,‘k’,‘’,10);
(,,‘’,‘*’,‘’,‘w’);
5.4形态学重构
5.4.1由重构做开运算
练习21
((51,1));
(,f);
5.4.1填充孔洞
(f,‘’)
5.4.2清除边界对象
6图像分割
6.1点、线和边缘检测
6.1.1点检测
点检测模板w:
-1
检测方法:
(((f),w))>
练习22
[-1-1-1;
-18-1;
-1-1-1];
(((f),w));
(g(:
));
*0.5;
;
6.1.2线检测
水平模板、+45度模板、垂直模板、-45度模板。
练习23
[2-1-1;
-12-1;
-1-12];
(g);
6.1.3使用函数的边缘检测
[](f,‘’,)
g是一个逻辑数组,其值为:
在f中检测到边缘的位置为1,其他位置为零;
t是是用的阈值;
为边缘监测器方法,可选为:
‘’,‘’,‘’,‘’(),‘’,‘’等;
包含两部分:
T为指定的阈值,第二部分为(检测边缘的首选方向:
‘’,‘’,‘’),或(标准方差),或H(指定的滤波函数)。
练习24
[](f,‘’);
();
6.2使用变换的线检测
练习25
设计与实现一个基于变换的直线检测器。
6.3阈值处理
6.3.1全局阈值处理
(f)
T是阈值,归一化为0至1之间的值。
6.3.2局部阈值处理
通过一个形态学顶帽算子并对得到的结果使用来计算。
练习26
(g);
6.4基于区域的分割
6.4.1区域生长
6.4.2区域分裂和合并
练习27
设计与实现一个基于区域生长的分割程序。
6.5使用分水岭变换的分割
练习28
2(f,(f))变成2值图像
取反,即非
()对二值图像距离变换
=0;
g2;
(g2);
6.6分割后处理
2=
(1)
填充二进制图像的背景色。
(形态学处理)
练习29
1=[10000000
11111000
10001010
10001110
11110111
10011010
10001110]
2=(1,3,3,8)
1'
3=2(I);
4=(3,'
(3)
(4)
二进制图像区域打开,清除小物体。
7表示与描述
7.1二进制图像对象的参数测量
=()
计算二进制图像对象的面积。
计算二进制图像的欧拉数。
练习30
=('
%=15799
%2
计算二进制图像中对象的周长。
练习31
1=('
2=(1,8);
(1)
(2)
在二进制图像中选择对象
练习32
c=[1690144];
r=[85197247];
2=(1,4);
7.2其他参数测量
b=2(A)
计算矩阵元素的标准偏移。
B=2(A,[mn])
计算矩阵元素的平均值