首页 > 编程知识 正文

matlab算子边缘检测,matlab边缘检测算法

时间:2023-05-06 03:41:12 阅读:22105 作者:1689

一、概念

Canny算子是一种非常重要的边缘检测算子,是一种最优的阶跃型边缘检测算子。 其最优性主要表现在以下三个方面;

好的检测: Canny算子可以尽可能多地识别原始图像中的实际边缘。

良好对齐:标记的边缘尽可能接近实际图像的实际边缘。

最小响应:图像中的边缘只能识别一次,可能存在的图像噪声不能识别为边缘。

二、Canny算子的具体实现步骤如下:

去噪:任何边缘检测算法在未经处理的原图像上处理不好,首先对原图像数据和二维高斯滤波模板进行卷积运算,得到的图像与原图像相比有轻微的模糊,从而可以去除噪声

梯度计算可以使用Prewitt算子和Sobel算子等导数算子来找到沿着图像灰度两个方向的导数g、g,分别求出梯度的幅度和方向:

梯度方向确定:求边缘方向,可将边缘梯度方向大致分为若干角度,如0、45、90、135,可找到该像素梯度方向的相邻像素。

扫描图像:如果某个像素的灰度值与其梯度方向的前后2个像素的灰度值相比不最大,则该像素的灰度值为0,即不是边缘。

利用累积直方图计算两个阈值。 大原稿的阈值一定是边缘。 (小于低阈值的一定不是边缘。 如果检测结果在2个阈值之间,则判断该像素的打印像素中是否有超过高阈值的边缘像素,在有的情况下判断为边缘; 否则就不是边缘了。

三、MATLAB代码实现

%去噪清除全部; clc; image=imread(Lena.jpg ); image=RGB2gray(image; subplot(221; imshow(image ); title (原始图像); image=双精度(image )/256; [m,n]=size(image ); w=fspecial(Gaussian ); image_1=imfilter(image,w,' replicate ' ); subplot(222; imshow(int8) 256*image_1); title ('高斯滤波后的图像); %坡度计算op=fspecial(Sobel ) )/4; 用Sobel算子求导数x=op '; y=op; bx=imfilter(image_1,x,'复制' ); by=imfilter(image_1,y,'复制' ); b_ABS=sqrt(bx.*bxby.*by ); 求出%梯度的振幅的b_angle=angle(by-I*bx ); b_ang=b_angle/3.1416*180; 求%梯度的方向%梯度方向确定forr=1: m forc=1: nif (b _ ang (r,c )=22.5 b_ang(r,c ) 67.5 )|(b _ ang ),c=c )=-112.5 b_ang(r )、r,c )-67.5 ) ) ) ELSEif () b_ang(r,c )=112.5 b_ang(r,c ) 157.5 ) | elsedir(r,c )=0; 结束%扫描图像b _ ab=[ Zeros,1 )、b_abs,zeros (m,1 ) ] %串联矩阵b_ab=[Zeros(1,n 2 ); b_ab; zeros(1,n 2 ); forrr=23360 m1 forc=2: n1交换机dir (r-1,c-1 ) case0if(b_ab ) r,c (b _ ab ) r1,c ) (|b_ab ) ) r,r endcase1if(b_ab(r,c ) b_ab ) r1,c-1 )|(b _ ab ) r,c _ ab (r-1,c 1) ) ) B1 ) r-1,c endcase2if(b_ab(r,c )=b_ab(r,c-1 ) )=b_ab(r,c ) b (r,c 1) ) ) B1 ) r-1,c-1 )=endcase3if(b_ab(r,c ) b_ab ) r-1,c-1 )|b _ ab (r,c _ ab ) r1,c 1) ) B1 ) r-1,c-1 endendendforr=1: m forc=1: nif (B1 (r,c ) 0.24 ) B2 ) r,c )=1; ELSEB2(r,c )=0; endendendforr=1: m forc=1: nif (B1 (r,c ) 0.36 ) B3 ) r,c )=1; ELSEB3(r,c )=0; 结束结束image _2=B3; fork=1:10 forr=2: m-1 forc=2: n-1if (B2 (r,c )=1(image_2(R,c )==1|image_2) R1,c 1 endendendsubplot (223; imshow(image_2; title(canny算子检测后的图像);四、实验结果如下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。