数字图像处理课程设计(4)

2019-04-22 21:18

常用的边缘提取算子如下:

(1).罗伯特(Robert)算子Robert 算子是一种利用局部差分算子寻

找边缘的算子,该算子对具有陡峭的低噪声的图像效果较好。 (2).Sobel 算子和Prewitt 算子

为在检测边缘的同时减少噪声的影响,Prewitt 从加大边缘检测算子的模板大小出发,由2×2 扩大到3×3 来计算差分算子,如表2所示。采用Prewitt 算子不仅能检测边缘点, 而且能抑制噪声的影响。Sobel 在Prewitt 算子的基础上,采用带权的方法计算差分,该算子不仅能检测边缘点,而且能进一步抑制噪声影响,但检测的边缘较宽。 (3)Canny 算子

Canny 算了检测边缘的方法是寻找图像梯度的局部极大值,梯度是用高斯滤波器的导数计算的。该方法使用两个阈值来分别检测强边缘和弱边缘,而且仅当弱边缘与强边缘相连时,弱边缘才会包含在输出中。此方法不容易受噪声的干扰,能够检测到真正的弱边缘。因此,Canny 算子在图像处理中应用越来越广泛。它依据图像边缘检

4.4.2 几种边缘检测算子的比较

常用的边界检测算子有罗伯特(Robert)算子、Sobel 算子和canny算子。在MATLAB中,系统提供edge函数,其功能是利用各种边界检测算子来检测灰度图像的边界。 函数edge的用法有以下几种: 1.BW=edge(I);

16

2.BW=edge(I,method); 3.BW=edge(I,method,thresh); 4.BW=edge(I,method,thresh,direction) 其中:

I:输入图像;

method:提取边界的方法,共有六种可取的值,即共有六种可使

用:’sobel’,’prewitt’,’roberts’,’log’,’zerocross’,’canny’,缺省时使用’sobel’;

thresh:指定的阈值,所有不强于thresh的边都被忽略; direction:对于’sobel’和’prewitt’方法指定方向,可取为:’horizontal’

和’vertical’,’both’(缺省值)

BW:返回的二值图像,其中1代表找到的边界。

在这些方法中,canny是较为优秀的一种,该方法使用两种不同的阈值分别检测强边界和弱边界,并且仅当弱边界和强边界相连时,才将弱边界包含在输出图像中。因此,这种方法不容易被噪声干扰,更容易检测到真正的弱边界。

分别调用’sobel’,’prewitt’,’roberts’,’log’,’zerocross’和’canny’六种方法检测图像rice.tif的边界。 程序如下: I=imread('rice.tif'); BW1=edge(I,'sobel'); BW2=edge(I,'prewitt'); BW3=edge(I,'roberts'); BW4=edge(I,'log'); BW5=edge(I,'zerocross');

17

BW6=edge(I,'canny');

imshow(I);title('图1: rice.tif原图','fontsize',14,'position',[128,280,0]); figure;imshow(BW1);title('图2: sobel算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW2);title('图3: prewitt算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW3);title('图4: roberts算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW4);title('图5: log算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW5);title('图6: zerocross算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW6);title('图7: canny算子提取的边界','fontsize',14,'position',[128,280,0]) 运行结果如下:

图7 图 8 图 9

18

图 10 图 11 图 12

图 13

从上面结果我们可以看出,canny算子提取的边界较为完整。 在不用edge中第三种参数时,系统自动选择阈值,我们可以用函数的如下调用格式来看系统为我们选择的阈值是多少,我们先看如下程序为我们带来的结果:

I=imread('rice.tif');

[BW1,th1]=edge(I,'sobel'); th1str=num2str(th1) imshow(I);

title('图1: rice.tif原图','fontsize',14,'position',[128,280,0]); figure;imshow(BW1);

ti='图8: sobel算子提取的边界,阈值为'; ti=strcat(ti,th1str)

title(ti,'fontsize',12,'position',[128,280,0])

19

图 14 图 15

我们将上面的程序中第二行换成 [BW1,th1]=edge(I,'sobel',0.05);

即可得到图15的结果。我们看到,边界提取得比图14要完整,因此,我们还可以通过调整阈值来改善边界提取得结果。

4.5飞机边界的提取与叠加

通过对几种边缘检测算子的比较,我们找到哪一种最优的解决方案,并完成呢边界的提取然后运用图像的几何操作完成最终的设计任务 程序见附录,效果如下图:

图 16 图 17

20


数字图像处理课程设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公司应收账款管理的现状及存在的问题、原因分析及建设与对策_毕

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: