资源简介
数字图像处理作业canny边缘检测坎尼边缘检测MATLAB源码及实验报告
代码片段和文件信息
%%%%%坎尼边缘检测器%%%%%
clear;close all;clc;
gc=imread(‘E:\学习\A+数字图像处理\实验2\Lena.jpg‘);
[MN~]=size(gc);
gc=double(gc);
g=gc(::1)*0.299+gc(::2)*0.587+gc(::3)*0.114;%Gray = R*0.299 + G*0.587 + B*0.114
%% 高斯平滑
m=3; n=3; sigma=1;
g1=Kuozhan(gmn);%%将原图像四周各扩展1行1列
gauss=fspecial(‘gaussian‘ [mn] sigma);%高斯滤波模板
gg=zeros(MN);
for i=1:M
for j=1:N
w=g1(i:i+m-1j:j+n-1);
gf=w.*gauss;
gg(ij)=sum(gf(:));%高斯平滑后的图像
end
end
%% 计算梯度幅值和角度
mgx=[-1 0 1;-2 0 2;-1 0 1];
mgy=[1 2 1;0 0 0;-1 -2 -1];
gg1=Kuozhan(ggmn);
gx=zeros(MN); gy=zeros(MN); gm=zeros(MN);
dir=zeros(MN);%方向
for i=1:M
for j=1:N
window=gg1(i:i+m-1j:j+n-1);
dx=window.*mgx;
dy=window.*mgy;
dx=dx‘;
gx(ij)=sum(dx(:));
gy(ij)=sum(dy(:));
gm(ij)=sqrt(gx(ij)^2 + gy(ij)^2);
theta=atand(gy(ij)/gx(ij)) + 90;%角度
%%确定方向1234分别表示水平、-45°、垂直、+45°边缘
if (theta >= 0 && theta < 45)
dir(ij) = 3;
elseif (theta >= 45 && theta < 90)
dir(ij) = 2;
elseif (theta >= 90 && theta < 135)
dir(ij) = 1;
else
dir(ij) = 4;
end
end
end
%% 非极大化抑制
gn = zeros(MN);%存储非极大化抑制后的gN(xy)
for i = 2:M-1
for j= 2:N-1
if (dir(ij) == 3 && gm(ij) == max([gm(ij) gm(ij+1) gm(ij-1)]))
gn(ij) = gm(ij);
elseif (dir(ij) == 2 && gm(ij) == max([gm(ij) gm(i+1j-1) gm(i-1j+1)]))
gn(ij) = gm(ij);
elseif (dir(ij) == 1 && gm(ij) == max([gm(ij) gm(i+1j) gm(i-1j)]))
gn(ij) = gm(ij);
elseif (dir(ij) == 4 && gm(ij) == max([gm(ij) gm(i+1j+1) gm(i-1j-1)]))
gn(ij) = gm(ij);
end;
end;
end;
%% 双阈值处理
gnh=zeros(MN);%存储阈值处理后的图像
TL=0.1*max(max(gn));%低阈值
TH=3*TL;%高阈值
for i = 1:M
for j = 1:N
if(gn(ij) gnh(ij)=0;
elseif(gn(ij)>TH)
gnh(ij)=1;
%TL elseif ( gn(i+1j) < TH || gn(i-1j) < TH || gn(ij+1) < TH || gn(ij-1) < TH ||...
gn(i-1j-1) < TH || gn(i-1 j+1) < TH || gn(i+1 j+1) < TH || gn(i+1 j-1) < TH)
gnh(ij) = 1;
end
end
end
%% 得到结果
imshow(gnh);
imwrite(gnh‘E:\学习\A+数字图像处理\实验2\Lena_canny0.1-1-3.jpg‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-06 13:03 canny edge detector\
文件 429446 2018-11-23 16:16 canny edge detector\brain_canny0.1-1-3.bmp
文件 2545 2018-11-23 16:25 canny edge detector\Canny.m
文件 327118 2018-11-23 16:06 canny edge detector\house_canny0.25-1-3.bmp
文件 826 2018-11-23 14:45 canny edge detector\Kuozhan.m
文件 14724 2018-11-23 16:25 canny edge detector\Lena_canny0.1-1-3.jpg
文件 161295 2018-11-23 16:27 canny edge detector\实验报告.pdf
- 上一篇:Noisex-92完整版.zip
- 下一篇:用于中文分词的中文词库包
相关资源
- matlab2019运动目标检测--数字图像处理
- 数字图像处理 MATLAB 大作业 代码及其
- 遥感影像融合_数字图像处理的matlab程
- 数字图像处理使用matlab进行采样量化
- 傅里叶变化频谱图及频域滤波
- matlab数字图像处理之几何变换将图像
- matlab数字图像处理之图像几何变换
- 数字图像课程设计MATLAB实现简单找茬
- 数字图像处理空间域图像增强
- 基于MATLAB-GUI图形界面的数字图像处理
- 数字图像处理期末大作业.doc
- 数字图像处理|Matlab-数字图像编码实
- 遥感数字图像处理-matlab-主成份及穗帽
- 基于MATLAB数字图像处理的实现和仿真
- 数字图像处理实验报告北科大 matlab
- 遥感数字图像处理内含Matlab)代码
- RGB 、YUV、YIQ 和 YCrCb颜色空间转换的
- 数字图像处理常用测试图片part6
- Canny边缘检测Matlab代码
- 现代数字图像处理技术提高及应用案
- 精通MATLAB数字图像处理2015的源代码
- MATLAB数字图像处理外文文献
- 数字图像处理-matlab实验三次
- 基于MATLAB GUI的数字图像处理
- 数字图像处理车辆识别
- 基于Matlab的数字图像处理课程设计
- 数字图像处理(MATLAB版)
- 基于MATLAB的图像处理的课程设计论文
- MATLAB运动模糊图像复原
- 车牌识别与人脸定位matlab
评论
共有 条评论