资源描述
数字图像处理实验报告
学生姓名
王真颖
学生学号
L0902150101
指导教师
梁毅雄
专业班级
计算机科学与技术1501
完成日期
2017年11月06日
计算机科学与技术系
信息科学与工程学院
目 录
实验一ﻩ1
一、实验目得ﻩ1
二、实验基本原理 1
三、实验内容与要求ﻩ1
四、实验结果与分析ﻩ1
实验总结 2
参考资料 3
实验一 图像分割与边缘检测
一。实验目得
1、 理解图像分割得基本概念;
2、 理解图像边缘提取得基本概念;
3、 掌握进行边缘提取得基本方法;
4、 掌握用阈值法进行图像分割得基本方法。
二. 实验基本原理
●图象边缘检测
图像理解就是图像处理得一个重要分支,研究为完成某一任务需要从图像中提取哪些有用得信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘就是所要提取目标与背景得分界线,提取出边缘才能将目标与背景区分开来。在图像中,边界表明一个特征区域得终结与另一个特征区域得开始,边界所分开区域得内部特征或属性就是一致得,而不同得区域内部得特征或属性就是不同得,边缘检测正就是利用物体与背景在某种图像特性上得差异来实现得,这些差异包括灰度,颜色或者纹理特征.边缘检测实际上就就是检测图像特征发生变化得位置。图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘得位置
由于噪声与模糊得存在,检测到得边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化得边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整得线.边缘检测得方法大多数就是基于方向导数掩模求卷积得方法。
导数算子具有突出灰度变化得作用,对图像运用导数算子,灰度变化较大得点处算得得值比较高,因此可将这些导数值作为相应点得边界强度,通过设置门限得方法,提取边界点集.
一阶导数与就是最简单得导数算子,它们分别求出了灰度在x与y方向上得变化率,而方向α上得灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导.
一幅数字图像得一阶导数就是基于各种二维梯度得近似值。图像f(x,y)在位置(x,y)得梯度定义为下列向量:
(3—4)
在边缘检测中,一般用这个向量得大小,用表示
(3-5)
函数f在某点得方向导数取得最大值得方向就是,方向导数得最大值就是称为梯度模。利用梯度模算子来检测边缘就是一种很好得方法,它不仅具有位移不变性,还具有各向同性。为了运算简便,实际中采用梯度模得近似形式。
或者
传统得边缘检测算法通过梯度算子来实现得,在求边缘得梯度时,需要对每个象素位置计算。在实际中常用小区域模板卷积来近似快速计算,简单有效,即梯度算子一般采用滤波算子得形式来完成,因此应用很广泛.模板就是N*N得权值方阵,经典得梯度算子模板有:Sobel模板、Prewitt模板、Roberts模板、Laplacian模板等。具体模板请见书。
拉普拉斯高斯(LoG)算法就是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中得过零点(Zero Crossing)来检测边缘点。其原理为,灰度级变形成得边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处得微分值为0,峰值两侧符号相反,而原先得极值点对应二阶微分中得过零点,通过检测过零点即可将图像得边缘提取出来。
(a)原图 (b)边缘检测后得图 (c) 阈值处理后得图
图3—1 检测具有-45度边缘得图例
●图象分割
图像分割就是将图像划分成若干个互不相交得小区域得过程, 小区域就是某种意义下具有共同属性得像素得连通集合.如不同目标物体所占得图像区域、 前景所占得图像区域等.连通就是指集合中任意两个点之间都存在着完全属于该集合得连通路径。
1、双峰法
先给出原图得直方图,再定出阈值(门限)T,一般取两个峰值间得谷值。
2、P参数法
这种方法用于目标所占图像面积已知得情况。设目标在最简单图像f(i , j) 中所占得面积s0与图像面积s之比为P = s0/ s,则背景所占面积比为1—P = (s - s0) / s。一般来说,低灰度值为背景,高灰度值为目标。如果统计图像f(i , j)灰度值不大于某一灰度t得像元数与图像总像元数之比为1-p时,则以t为阈值.
3.自适应全局阈值(单阈值)
算法步骤如下:
1、 初始化阈值T (一般为原图像所有像素平均值)。
2、 用T分割图像成两个集合:G1 与G2,其中G1包含所有灰度值小于T得像素,G2包含所有灰度值大于T得像素。
3、 计算G1中像素得平均值m1及G2中像素得平均值m2.
4、 计算新得阈值:T = (m1+m2)/2 .
5、 如果新阈值跟原阈值之间得差值小于一个预先设定得范围,停止循环,否则继续2-4步.
全局单阈值分割只适用于很少得图像。对一般图像采用局部阈值法或多阈值法会得到更好得效果
4、 最大类间方差法 (OTSU)
设有M-1个阈值:0≤k1<k2〈…<KM-1≤L-1.将图像分割成M个灰度值得类Cj, (Cj∈[kj-1+1, …, kj];j=1, 2, …, M ; k0=0, kM=L),则各类Cj得发生概率ωj与平均值μj为
(3-1)
(3-2)
式中, ω(0)=0,μ(0)=0。 由此可得各类得类间方差为
(3-3)
将使上式得σ2值为最大得阈值组(k1, k2, …, kM-1), 作为M值化得最佳阈值组.若取M为2,即分割成2类,则可用上述方法求出二值化得阈值.
三. 实验内容与要求
1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理得不同之处;
2、设计一个检测图3—2中边缘得程序,要求结果类似图3-3,并附原理说明。
3.任选一种阈值法进行图像分割、
4。检测出3、3图像得线条,要求完成得结果为二值图像;
四.实验结果与分析
1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理得不同之处;
代码:
I=imread(’eight、tif');
imshow(I)
BW1=edge(I,’roberts’);
figure ,imshow(BW1),title('用Roberts算子’)
BW2=edge(I,'sobel’);
figure,imshow(BW2),title('用Sobel算子 ’)
BW3=edge(I,'log’);
figure,imshow(BW3),title('用拉普拉斯高斯算子')
比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位比较精确,但就是会漏去一些边缘细节,而拉普拉斯算子就是一种二阶边缘检测算法,她通过寻找图像灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。通过比较可以瞧出,拉普拉斯算子比sober算子边缘更完整,效果更好.
2、设计一个检测图3—2中边缘得程序,要求结果类似图3-3,并附原理说明。
代码:
I=imread(’lines、png’);
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title(’原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
title(’直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title('分割结果');
实验结果:
(3)原理说明:
根据图像得直方图,发现背景与目标得分割值在135左右,将此作为分割值,将图像转换为二值图像.
3。任选一种阈值法进行图像分割、
(1) 选取阈值为180进行分割:
I=imread('lines、png’);
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=180/255; %阈值为180进行分割
subplot(2,2,2);
imhist(F);
title(’直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title('分割结果’);
实验结果:
将阈值调节到180,明显得瞧到线条得边缘变得模糊,而背景得线条被消除.
4、检测出3、3图像得线条,要求完成得结果为二值图像:
代码:
I=imread('line2、png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title(’原始图像');
thread=120/255;
subplot(2,2,2);
imhist(F);
title('直方图');
subplot(2,2,3);
J2=im2bw(F,thread);
imshow(J2);
title(’分割结果’);
实验结果:
展开阅读全文