• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: 图像处理  

资源简介

本文件包为canny边缘检测算法代码,matlab编写,用于检测图像边缘。

资源截图

代码片段和文件信息

clear all;
close all;
clc;

img=imread(‘lena.jpg‘);
imshow(img);
[m n]=size(img);
img=double(img);

%%canny边缘检测的前两步相对不复杂,所以我就直接调用系统函数了
%%高斯滤波
w=fspecial(‘gaussian‘[5 5]);
img=imfilter(imgw‘replicate‘);
figure ;%1
imshow(uint8(img))

%%sobel边缘检测
w=fspecial(‘sobel‘);
img_w=imfilter(imgw‘replicate‘);      %求横边缘
w=w‘;
img_h=imfilter(imgw‘replicate‘);      %求竖边缘
img=sqrt(img_w.^2+img_h.^2);        %注意这里不是简单的求平均,而是平方和在开方。我曾经好长一段时间都搞错了
figure ;
imshow(uint8(img))

%%下面是非极大抑制以求解局部最大值
new_edge=zeros(mn);
for i=2:m-1
    for j=2:n-1
        Mx=img_w(ij);
        My=img_h(ij);

        if My~=0
            o=atan(Mx/My);      %边缘的法线弧度
        elseif My==0 && Mx>0
            o=pi/2;
        else
            o=-pi/2;            
        end

        %Mx处用My和img进行插值
        adds=get_coords(o);      %边缘像素法线一侧求得的两点坐标,插值需要       
        M1=My*img(i+adds(2)j+adds(1))+(Mx-My)*img(i+adds(4)j+adds(3));   %插值后得到的像素,用此像素和当前像素比较 
        adds=get_coords(o+pi);%边缘法线另一侧求得的两点坐标,插值需要
        M2=My*img(i+adds(2)j+adds(1))+(Mx-My)*img(i+adds(4)j+adds(3));   %另一侧插值得到的像素,同样和当前像素比较

        isbigger=(Mx*img(ij)>M1)*(Mx*img(ij)>=M2)+(Mx*img(ij)
        if isbigger
           new_edge(ij)=img(ij); 
        end        
    end
end
figure 3;
imshow(uint8(new_edge))

%%下面是滞后阈值处理
up=120;     %上阈值
low=100;    %下阈值
set(0‘RecursionLimit‘10000);  %设置最大递归深度
for i=1:m
    for j=1:n
      if new_edge(ij)>up &&new_edge(ij)~=255  %判断上阈值
            new_edge(ij)=255;
            new_edge=connect(new_edgeijlow);
      end
    end
end
figure 4;
imshow(new_edge==255)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1906  2018-09-12 23:13  canny边缘检测算法_代码\canny.m

     文件        486  2018-09-12 22:05  canny边缘检测算法_代码\connect.m

     文件        326  2018-09-12 22:05  canny边缘检测算法_代码\get_coords.m

     目录          0  2018-09-16 11:19  canny边缘检测算法_代码

----------- ---------  ---------- -----  ----

                 2718                    4


评论

共有 条评论