资源简介

MATLAB实现Canny图像边缘检测,此为本人研一时的图像处理与成像制导的作业,完全可以实现,并且附有详细的实验报告。

资源截图

代码片段和文件信息

clc;
clear all;
close all;
I=imread(‘gray.bmp‘);  
th1=20;   
Img=double(I);  
 G=size(I);  
 alf=3;  
 n=7; 
 n0=floor((n+1)/2);
 
 T=zeros(G(1)G(2));  
 R=zeros(G(1)G(2));  
 H=zeros(G(1)G(2));  

 for i=1:n    %%Gaussian滤波器
     for j=1:n  
        h(ij)=exp(-((i-n0)^2+(j-n0)^2)/(2*alf))/(2*pi*alf);  
    end  
 end  
  
 Img_n=uint8(conv2(Imgh‘same‘));  
 figure(); imshow(I);      title(‘原图‘);  
 figure(); imshow(Img_n);  title(‘和Gaussian卷积后的图像‘); 
 imwrite(Img_n‘G.bmp‘);
  

 Img_n=double(Img_n);  
 for i=2:(G(1)-1)  
     for j=2:(G(2)-1)  
         Sx=Img_n(i-1j-1)+2*Img_n(ij-1)+Img_n(i+1j-1)-Img_n(i-1j+1)-2*Img_n(ij+1)-Img_n(i+1j+1);  
         Sy=Img_n(i+1j-1)+2*Img_n(i+1j)+Img_n(i+1j+1)-Img_n(i-1j-1)-2*Img_n(i-1j)-Img_n(i-1j+1);  
         E(ij)=sqrt(Sx^2+Sy^2);  
         if(E(ij)             E(ij)=0;  
         end  
     end  
 end  
 figure() ;imshow(uint8(E)); title(‘Canny算子处理之后的图像‘);   
 imwrite(E‘C6.bmp‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-11-29 11:23  MATLAB实现Canny边缘检测\
     文件      251494  2012-11-24 09:50  MATLAB实现Canny边缘检测\C6.bmp
     文件      252928  2012-11-29 11:23  MATLAB实现Canny边缘检测\Cannywss.doc
     文件        1029  2012-11-24 09:50  MATLAB实现Canny边缘检测\Cannywss.m
     文件      252058  2012-11-24 09:50  MATLAB实现Canny边缘检测\G.bmp
     文件      252058  2012-11-24 09:50  MATLAB实现Canny边缘检测\gray.bmp

评论

共有 条评论