数字图像处理实验程序7教程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理实验报告 班级:11研信息1班 姓名: 林雨辰 学号:10011311302 实验七 图像的边缘检测 一、实验目的 1掌握图像边缘检测的概念及其计算方法; 2熟练掌握图像边缘检测的计算过程; 二、实验原理 拉普拉斯算于是对二维函数进行运算的二阶导数标量算子。它定义为: 一个无噪声图像具有陡峭的边缘,可用拉普拉斯算子将它们找出来。对经拉普拉斯算子滤波后的图像用零灰度值进行二值化会产生闭合的、连通的轮廓并消除了所有的内部点。但是由于噪声的存在,在运用拉普拉斯算子之前需要先进行低通滤波。 这个脉冲响应对x和y是可分离的,因此可以有效地加以实现。 边缘点 :确定图像中的物体边界的另一种方法是先检测每个像素和其直接邻域的状态,以决定该像素是否确实处于一个物体的边界上。具有所需特性的像素被标为边缘点。 边缘图像 : 当图像中各个像素的灰度级用来反映各像素符合边缘像素要求的程度时,这种图像被称为边缘图像。 边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常也包括方向的确定。有若干种方法可以使用,其中大多数是基于方向导数掩模求卷积的方法。 其中,f(x,y)是具有整数像素坐标的输入图像。其中的平方根运算使该处理类似于人类视觉系统中发生的过程。 图像中的每个点均与这8个模板进行卷积,每个掩模对某个特定边缘方向作出最大响应。所有8个方向中的最大值作为边缘幅度图像的输出。最大响应掩模的序号构成了对边缘方向的编码。 Kirsch算子的梯度幅度值 三,实验内容 1.设计并实现对数字图象进行边缘检测 2.分析所得到的结果。 四,实验要求 1、实验之前要预习 2、独立完成程序的编写 3、写出实验报告 4、实验每组1人 实验设备:每组计算机一台 五,实验程序及实验结果分析 1叙述实验过程; 2提交实验的原始图像和结果图像。 要求:对上述实验内容,自己创造性地设计实验,得出有意义的结论。clc close all clear all %%%生成高斯平滑滤波模板%%% %%%%%%%%%%%%%%%%%%%%%%%%% hg=zeros(3,3); %设定高斯平滑滤波模板的大小为3*3 delta=0.5; for x=1:1:3 for y=1:1:3 u=x-2; v=y-2; hg(x,y)=exp(-(u^2+v^2)/(2*pi*delta^2)); end end h=hg/sum(hg(:)); %%%%%%%%读入图像%%%%%%%%%%%% f = imread(); % 读入图像文件 f=rgb2gray(im2double(f)); imshow(f) title(原始图像); [m,n]=size(f); ftemp=zeros(m,n); rowhigh=m-1; colhigh=n-1; %%%高斯滤波%%% for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)]; A=h.*mod; ftemp(x,y)=sum(A(:)); end end f=ftemp figure,imshow(f) title(通过高斯滤波器后的图像); % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%%利用roberts算子进行边缘检测%%% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sx=[-1 -2 -1;0 0 0;1 2 1]; sy=[-1 0 1;-2 0 2;-1 0 1];%%%%%你可以替换成其他算子,这里是罗伯特算子 % sx=[-1 -2 -1;0 0 0;1 2 1]; % sy=[-1 0 1;-2 0 2;-1 0 1];这个是Sobel算子,类似的,你可以替换成canny算子等等 for x=2:1:rowhigh-1 for y=2:1:colhigh-1 mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)]; fsx=sx.*mod; fsy=sy.*mod; ftemp(x,y)=sqrt((sum(fsx(:)))^2+(sum(fsy(:)))^2); end end fr=im2uint8(ftemp); figure,imshow(fr) title(用roberts算子边缘检测的原始图像); %%%域值分割%%% TH1=60; %设定阈值 for x=2:1:rowh

文档评论(0)

ss55863378 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档