I=imread('D:\我的文档\MATLAB\cameramanbmp');
J0=imnoise(I,'gaussian');
J1=imnoise(I,'salt & pepper');
J0J3=imfilter(J0,fspecial('average'));
J0J5=imfilter(J0,fspecial('average',[5 5]));
J0Z3=medfilt2(J0);
J0Z5=medfilt2(J0,[5 5]);
J1J3=imfilter(J1,fspecial('average'));
J1J5=imfilter(J1,fspecial('average',[5 5]));
J1Z3=medfilt2(J1);
J1Z5=medfilt2(J1,[5 5]);
subplot(2,2,1),imshow(I);
title('原始图像');
subplot(2,2,2),imshow(J0);
title('加入零均值高斯噪声');
subplot(2,2,3),imshow(J1);
title('加入椒盐噪声');
figure,
subplot(2,2,1),imshow(J0J3);
title('对高斯噪声,采用3x3均值滤波');
subplot(2,2,2),imshow(J0J5);
title('对高斯噪声,采用5x5均值滤波');
subplot(2,2,3),imshow(J0Z3);
title('对高斯噪声,采用3x3中值滤波');
subplot(2,2,4),imshow(J0Z5);
title('对高斯噪声,采用5x5中值滤波');
figure,
subplot(2,2,1),imshow(J1J3);
title('对椒盐噪声,采用3x3均值滤波');
subplot(2,2,2),imshow(J1J5);
title('对椒盐噪声,采用5x5均值滤波');
subplot(2,2,3),imshow(J1Z3);
title('对椒盐噪声,采用3x3中值滤波');
subplot(2,2,4),imshow(J1Z5);
title('对椒盐噪声,采用5x5中值滤波');
421 Roberts算法原理
Roberts算子是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子,他采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。
422 算法流程
Roberts算子在2×2领域上计算对角导数
(4-1)
成为Roberts交叉算子。在实际应用中为了简化计算,用梯度函数的Roberts绝对值来近似
(4-2)另外还可以用Roberts 最大算子来计算
(4-3)
上式能够提供较好的不变性边缘取向。对于同等长度但取向不同的边缘,应用Roberts最大值算子比应用Roberts交叉算子所得到的合成幅度变化小。Roberts边缘检测算子的卷积算子为
Roberts 边缘算子方向模版
由上面两个卷积算子对图像运算后,代入(3-7)式,可求得图像的梯度幅度值,然后选取门限TH,做如下判断>TH,为阶跃状边缘点为一个二值图像,也就是图像的边缘图像。441 Prewitt 算法原理
Prewitt边缘算子是一种边缘样板算子。Prewitt 从加大边缘检测算子的模板大小出发,由2×2 扩大到3×3 来计算差分算子,采用Prewitt 算子不仅能检测边缘点,而且能抑制噪声的影响。
Prewitt 采用计算偏微分估计的方法,由式(4-9)所示的两个卷积算子形成了Prewitt边缘算子,样板算子由理想的边缘子图像构成,依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值,用这个最大值作为算子的输出
(4-9)
另一种方法是,可以将Prewitt算子扩展到八个方向,每个模版对特定的边缘方向做出最大响应,所有8个方向中最大值作为边缘幅度图像的输出,这些算子样板由离线的边缘子图像构成。依次用边缘样板去检测图像,与被检测区域最为相似的的样板给出最大值。定义Prewitt 边缘检测的算子模版如下:
(1)1方向 (2)2方向 (3)3方向 (4)4方
对于已经写入数字图像处理及机器视觉教科书多年的Sobel算子,谁也没曾追问和关心过它的发明背景和历史。最近,给学生上“光电图像处理”课,想介绍一下该算子的来历,查了很多文献,就是找不到原始文献。Google学术里搜索,信息很多,却不一致。有标注为期刊论文的,也有标注出版物析出的,出版时间也不一致(冈萨雷斯《Digital Image Processing》教材标注的时间为1970年)。
这个看似简单,但领域内科研、开发人员沿用了几十年的边缘检测算子究竟如何产生的?偶然发现了一个帖子,该算子的提出者Irwin Sobel在算子产生多年后于该帖中详细谈到它的由来和定义。
原来,这个著名的Sobel边缘算子,当年作者并没有公开发表过论文,仅仅是在一次博士生课题讨论会(1968)上提出("A 3x3 Isotropic Gradient Operator for Image Processing"),后在1973年出版的一本专著("Pattern Classification and Scene Analysis")的脚注里作为注释出现和公开的。
以上就是关于matlab图像处理全部的内容,包括:matlab图像处理、Matlab关于图像边缘提取,用Sobel算子、Roberts算子、Prewitt算子,加QQ详谈 急用!!、Sobel算子的由来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)