几种常用的边缘检测算子:边缘是图像的最重要的特征,。边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边...
几种常用的边缘检测算子:
边缘是图像的最重要的特征,。边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边缘检测方法,同一种方法使用的滤波器也不尽相同。图像边缘检测就是研究更好的边缘检测方法和检测算子。
边缘检测的基本思想:i. 用边缘算子提取出反映灰度变化的边缘点集
ii. 在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线
常用的检测算子有==拉普拉斯边缘检测算法、Robert边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Canny边缘检测算子==。
在Matlab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。
代码:clear;close all;img=imread('C:UserslenovoDesktop15.bmp');figure('name','原图和二值化图像');subplot(1,2,1);imshow(img);title('原始图像')img=imbinarize(img); %二值化图像subplot(1,2,2);imshow(img)title('二值化图像')figure('name','五种边缘检测算子实现图'); �ge函数中的图像可以是二值图像也可以是灰度图像,%因为原图为二维图像采用二值算法进行处理更为方便;canny= edge(img,'canny');% 这里采用默认阈值,如果更加复杂的图像可以自定义阈值�nny= edge(img,'canny',0.51); %自定义阈值subplot(2,3,1);imshow(canny);title('Canny算子实现')Roberts= edge(img,'Roberts');subplot(2,3,2);imshow(Roberts);title('Roberts算子实现')Sobel= edge(img,'Sobel');subplot(2,3,3);imshow(Sobel);title('Sobel算子实现')Prewitt= edge(img,'Prewitt');subplot(2,3,4);imshow(Roberts);title('Roberts算子实现')Roberts= edge(img,'Roberts');subplot(2,3,5);imshow(Prewitt);title('Prewitt算子实现')
处理结果:
在这里插入图片描述
在这里插入图片描述
本片博客参考下面两位博主的文章:基于matlab边缘提取的几种方法的比较edge函数使用
以上内容则是玖云博客网发布关于(matlab边缘提取(matlab边缘提取图))的内容信息!欢迎分享转载
发表评论