图像处理边缘提取与分割实验报告附源码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
边缘提取与图像分割
理论、算法、源码与实例
1)理论
一、边缘检测的基本方法:
各种差分算子,主要有:
差分边缘检测方法
Roberts梯度模算子
前两种对垂直,水平,对角检测好。
Prewitt算子,Robinson算子(算八个方向的梯度最大值)
Sobel算子(利用上下左右加权,可平滑噪声);
Kirsch算子
Rosenfeld算子
Laplace算子(二阶导数算子,一般不用于检测,用于之后判别暗区与明区。)
LOG算子,(高斯平滑后求导提取边界。)
主要思路用高斯函数对图像平滑滤波,然后再对图像进行拉普拉斯运算,算得的值等于零的点认为是边界点。
该算法高斯函数方差取值很重要,过大会导至精度不高。还容易产生虚假边界。但可以用一些准备去除虚假边界。对于灰度渐变图的效果也不太好。但大部份图片边缘提取效果还好。Canny边界检测算子
二、拟合曲面求导提取边界。
主要思路为在点的邻域各点拟合一个曲面,由曲面的求导代替离散点求差分,这种方法对于噪声比较不敏感。
三、统计判决法提取边界
以误判概率最小化设置门限,对边界检测算子作用后的每个像点判别/。统计判决法依赖于先验知识。
四、分裂—合并算法
按一定的均一化标准,将图片分成子图。合并满足均一性准则的子图。
五、跟踪技术
1)区域跟踪,基于区域的图像分割方法。
应用于直接提取区域。检测满足跟踪准则的点,找到这样的点,检测其所有邻点,把满足跟踪准则的任合邻点合并再重复。直到没有邻点满足检测准则。
2)曲线跟踪,基于边界的图像分割方法。
对整幅图扫描,对所有“现在点”的邻点检测,周围没有满足跟踪条件的点时,返回到上一个最近的分支处,取出另一个满足跟踪原则的现在点。重复根踪。
六、模型化与统计检验法检测边界
开始步骤为对图像划分成多块子图,每块子图进行曲面拟合。并应用误差的分析,构造F 统计量,判断此区域是否有边界的存在。
七、匹配检测技术
基于区域的一种分割方法。
1)归一化互相关测度匹配
类似于求相关系数。但是这种方法实用时不太理想,因为匹配模板的尺寸跟图上的尺寸差异,造成操作很难。
2)匹配滤波器
基于最大信噪比准则。
用一个滤波器对图像子图作卷积,当滤波器为子图旋转180度后的K倍时,功能与相关系数一样。此时称为匹配滤波器。
3)线检测
用匹配滤波器可以设计一些线检测器。对直线检测效果好。
八、利用模式识别某些技术进行图像分割
对每个像素提取特征,提取一个n维特征,如果特效果好,那么在特征空间里,像素点会表现出类聚。一般来说,特征是区域性的,一般是征对邻域或图像的各个子图提取特征。通常特征包含,灰度,空间关系(梯度,像素小块邻域平均灰度,纹理参数,颜色)等。
九、基于活动轮廓模型的边界提取算法
不同于经典的基于求导自下而上过程,而是一种基于总体和局部的自上而下和自下而上的处理过程。借助一些物理概念构造一个描述轮廓状态指标,将图像灰度分布,灰度梯度及轮廓形状约束等信息作为“外能”和“内能”构造活运轮廓的能量函数。将一个初始轮廓放在感兴趣的图像区域中,轮廓在外力和内力作用下变形,外力推动活动轮廓向着物体的边缘运动,而内力要使活动轮廓趋于光滑和保持其拓朴性。在达到平衡时,对应的能量最小,此时的活动轮廓即为要检测的边界。
十、基于视觉特性的边界提取方法
——线性加权函数(LWF)在边界检测中的应用
视觉系统对亮度对比度的感知可以转化为数学中的微分算子的特征值问题,视觉的感觉响应类似于高斯函数与其拉普拉斯变换之和。基于生理学和数学导出的线性加权函数(LWF)是高斯函数与它的二阶导数的线性组合.
视觉处理过程是图像与一系列不同方差的高斯函数及其二阶导数的卷积过程。
2)实验:
一、对一种普通图像的边缘提取:
对于边缘处灰度值有阶越变化的图形,使用各种差分算子可以很好的提取。
例如对下图:(分别使用sobel,Roberts,prewitt,log,canny,laplace算子进行检测。)
I=imread('rice.png');
>> BW1=edge(I,'sobel');BW2=edge(I,'roberts');BW3=edge(I,'prewitt');
BW4=edge(I,'log');BW5=edge(I,'canny');
h=[0 -1 0;-1 4 -1;0 -1 0];
BW6=edge(I,'zerocross',h);
subplot(231);imshow(BW1);subplot(232),imshow(BW2);
subplot(233);imshow(BW3);subplot(234),imshow(BW4);
subplot(235);imshow(BW5);subplot(236),imshow(BW6);
效果如下页各图:
从上面的结果来看,sobel,Roberts,prewitt,log,canny,算子都可以检测出明显边缘,细节方面,sobel LOG canny方法的抗噪能力更强。Roberts在一些线检测方面有点弱,边界不太连续。然而直接应用laplace算子,可以看出对噪声的极度敏感,也提不出好的边界。所以一般不直接使用,而是先进行高斯滤波,再使用(也就是LOG算子)。
二、对抗噪能力的检测
对下图这种手写体字符的边缘提取:
用sobel算子的结果:
用LOG算子的结果:
可以明显对比出先平滑后再进行边缘提取的效果。会减少很多虚假边界。
三、对渐变图形
差分算子,对渐变图型无效。如右图为一幅梯度渐变灰度图。用差分算子,提不出任何边缘。但可以考虑使用灰度门限,或者形态学滤波提取骨架。
midx=256/2;midy=256/2;
for i=1:256
for j=1:256
a(i,j)=2*(128-max(abs(i-midx),abs(j-midy)));
end
end
imshow(a,[]);
BW=edge(a);
figure(2);
imshow(BW);