边缘检测和轮廓提取

边缘检测和轮廓提取
边缘检测和轮廓提取

目录

摘要 (2)

Abstract (3)

1概述 (4)

1.1数字图像处理的意义 (4)

1.2MATLAB简介 (4)

1.3设计任务 (5)

2边缘检测 (6)

2.1图像的边缘 (6)

2.2边缘检测的基本步骤 (6)

2.3边缘检测算法 (7)

2.3.1Reborts算子 (7)

2.3.2Sobel算子 (8)

2.3.3Prewitt 算子 (8)

2.3.4Kirsch 算子 (9)

2.3.5LOG算子 (10)

2.3.6Canny算子 (11)

3轮廓提取 (12)

4实验仿真 (13)

4.1 Sobel算子代码 (13)

4.2轮廓提取算法 (15)

4.3仿真结果及分析 (18)

5实验小结 (19)

6参考文献 (20)

摘要

图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。而边缘检测算法则是图像边缘检测问题中经典技术难题之一,它的解决对于我们进行高层次的特征描述、识别和理解等有着重大的影响;又由于边缘检测在许多方面都有着非常重要的使用价值,所以人们一直在致力于研究和解决如何构造出具有良好性质及好的效果的边缘检测算子的问题。

本此实验主要分析几种应用于数字图像处理中的边缘检测算子,根据它们在实践中的应用结果进行研究,主要包括:Robert 边缘算子、Prewitt 边缘算子、Sobel 边缘算子、Kirsch 边缘算子以及Laplacian 算子等对图像及噪声图像的边缘检测,根据实验处理结果讨论了几种检测方法的优劣.

关键词:数字图像处理;边缘检测;算子

Abstract

The edges of the image, one of the basic characteristics of the image tend to carry most of the information in the image. Edge exists in the irregular structure of the image and non-stationary phenomena, i.e. exist in a mutation point of the signal, these points are given the location of the image contours, these contours are often required in image edge detection is very important some of the characteristics of the condition, which we need to detect and extract its edge image. The edge detection algorithm is the classic one of the technical problems of image edge detection problems, the solution for our high-level characterization, recognition and understanding has a significant impact; edge detection are very important in many ways value in use, so people have been devoted to the study and solve the problem of how to construct edge detection operator with a good nature and good results.

This experiment analysis of several used in digital image processing, edge detection operator research results according to their application in practice, including: The Robert Edge Operator child Prewitt edge operator, Sobel edge operator, Kirsch edge operator and Laplacian operator on the image and noise image edge detection discussed the pros and cons of several detection methods, according to the results of the experimental treatment.

Keywords: digital image processing; edge detection; operator

1概述

1.1数字图像处理的意义

数字图像处理技术的迅猛发展,其应用前景得到了不可限量的扩展,如今各行各业都在积极发展与图像相关的技术。其应用逐渐凸显其魅力,其应用如医学影像、航天航空、无人驾驶、自动导航、工业控制、导弹制导、文化艺术等。边缘检测在图像处理和计算机视觉等领域骑着重要的作用,是图像分析、模式识别、目标检测与分割等的前期处理。前期边缘检测的好坏,直接影响后期更高级处理的精度。

自从1986年John Canny提出了最优边缘检测算子的三条准则并推导出了一个近似实现。但是在实际中,真正实现这一目标尚有较大的难度。这是因为:(1)实际图像一般都含有噪声,并且噪声的分布信息业是未知的,同时噪声和边缘都属于高频信息,在进行滤波的同时,虽然能够在一定程度上抑制噪声,却也丢失了边缘信息。(2)由于场景、光照条件的边缘等原因,同一场景在不同光照条件下得到的边缘可能也是不同的,设置的阈值也可能是不同的。针对这些问题,如何进行改进,并得到较理想的边缘检测算子是有必要的。

另一方面,轮廓提取技术是图像分割、目标区域识别区域行状提取等图像分析处理领域十分重要的基础。寻求非接触、精度高、具有综合分析能力的识别方法来代替人工目测,解决图像表面的模式识别和测量问题,是图像加工行业面临的一大难题,也是值得我们长期探讨的科研课题

1.2MATLAB简介

Matlab是美国MathWorks公司出品的商业化数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级计算语言和交互式环境,主要包括Matlab和Simulink两大部分。 Matlab是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应

用于工程计算、控制设计、信号处理于通讯、图像处理、信号检测、金融建模设计与分析等领域。Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解决问题要比用C、FORTRAN等语言完成相同的事情简捷的多,并且Mathwork也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。

Matlab图像处理程序开发的特点是上手容易,开发周期短,见效快,和VB、VC等专业级编程工具相比,在Matlab平台上开发图像处理软件程序代码编写量明显较小[3]。这是因为Matlab有专门的图像处理工具箱,有很多实现某种图像处理功能的函数,而专业级的编程工具并没有专门为图像处理而编写的函数,很多图像处理函数需要开发者自己编写。因此,图像处理工作采用Matlab编程是非常合适的。

1.3设计任务

针对一幅图像,利用边缘检测算子(如Robert算子、Sobel算子、Prewitt 算子、Laplace算子、Kirsch算子和Marr算子)检测出图像的边缘,然后采取轮廓提取算法得到封闭的二值图像轮廓。

2边缘检测

2.1图像的边缘

在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变、纹理结构的图标、颜色的图标等。尽管图像的边缘点产生的原因各不相同,但他们都是图形上灰度不连续或灰度几句辩护的点,图像边缘分为阶跃状、斜坡状和屋顶状。

从成因上看,一般图像边缘主要由四个方面的因素形成:

(1)图像灰度在表面法向变化的不连续造成的边缘;

(2)图像对像素在空间上不一致形成的边缘;

(3)在光滑的表面上由于颜色的不一致形成的边缘;

(4)物体的光影造成的边缘。

图像边缘提取的作用有:

(1)改良图像质量;

(2)分离对象;

(3)理解和重构视觉场景;

(4)识别特征。

2.2边缘检测的基本步骤

(1)滤波:边缘检测主要基于导数计算,会受到噪声的影响,可以通过设计滤波器来降低噪声,但滤波器在降低噪声的同时也会导致边缘精度的损失。

(2)增强:增强算法将邻域中灰度有显著变化的点突出显示。一般通过计算梯度幅值来完成。

(3)检测:在有些图像中梯度幅值较大的并不是边缘点。最简单的边缘检测

是梯度幅值阈值判定。

(4)定位:精确确定边缘的位置。

2.3边缘检测算法

特征提取作为图像边缘检测的一个重要内容,发展了众多的方法。这些方法经过实践的检验,成为了经典的内容。经典的边缘检测算子包括:Roberts 算子、Prewitt 算子、Sobel 算子、Log 算子、Canny 算子等,这些经典的边缘提取算子在使用时都是使用预定义的边缘模型去匹配。

2.3.1Reborts 算子

Reboerts 算子是一种利用局部差分来寻找边缘的算子,Roberts 梯度算子所采用的是对角方向相邻两像素值之差,算子形式如下:

)

1,1(),(---=j i f j i f Gx )1,(),1(---=j i f j i f Gy 2

2

|),(|y

x G G y x G +=

Roberts 梯度算子对应的卷积模版为:

??

??

??-=10

01Gx

??

??

??-=0110

Gy

用以上两个卷积算子与图像运算后,可求出图像的梯度幅值 G ( x,y),然后选择适当的阈值τ ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点。由此得到一个二值图像 { g (i,j)},即边缘图像。Roberts 算子采用的是用对角线方向上相邻两像素的差近似梯度幅值来检测边缘,它的定位精度高,对于水平和垂直方向的边缘,检测效果较好,而对于有一定倾角的斜边缘,检测效果则不理想,存在着许多的漏检。另外,在含噪声的情况下,Roberts 算子不能有效的抑制噪声,容易产生一些伪边缘。因此,该算子适合于对低噪声且具有陡峭边缘的图像提取边缘。

2.3.2Sobel 算子

Sobel 算子在边缘检测算子扩大了其模版,在边缘检测的同时尽量削弱了噪声。其模版大小为3×3,其将方向差分运算与局部加权平均相结合来提取边缘。在求取图像梯度之前,先进行加权平均,然后进行未分,加强了对噪声的一致。Sobel 算子所对应的卷积模版为:

????

?

?????---=10

1

202

`101Gx ????

?

?????--=12

1

000

121

Gy

图像中的每个像素点和以上水平和垂直两个卷积算子做卷积运算后,再计算得到梯度幅值 G ( x,y),然后选取适当的阈值τ ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点。由此得到一个二值图像 { g (i,j)},即边缘图像。Sobel 算子在空间上比较容易实现,不但产生较好的边缘检测效果,同时,由于其引入了局部平均,使其受噪声的影响也较小。若使用较大的邻域,抗噪性会更好,但也增加了计算量,并且得到的边缘比较粗。在对精度要求不是很高的场合下,Sobel 算子是一种较为常用的边缘检测算法。

2.3.3Prewitt 算子

同 Sobel 算子相似,Prewitt 算子也是一种将方向的差分运算和局部平均相结合的方法,也是取水平和垂直两个卷积核来分别对图像中各个像素点做卷积运算,所不同的是,Sobel 算子是先做加权平均然后再微分,Prewitt 算子是先平均后求微分,其对应的卷积模版为:

????

?

???

??---=10

1

101

`101

Gx ????

?

???

??---=11

1

000

111

Gy (2.3.8)

图像中的每个像素点和以上水平和垂直两个卷积算子做卷积运算后,再计算得到梯度幅值 G ( x,y),然后选取适当的阈值τ ,若 G ( x,y)>τ,则 (i ,j)为边缘点,否则,判断 (i ,j)为非边缘点。由此得到一个二值图像 { g (i,j)},即边缘图

像。

在此基础上,有人提出了改进的Prewitt 算子,将其扩展到八个方向,依次用这些边缘模板去检测图像,与被检测区域最为相似的样板给出最大值。用这个最大值作为算子的输出值 P[ i ,j],这样就可将边缘像素检测出来。八个方向的 Prewitt 算子模板及其所对应的边缘方向如下所示:

????

?

?????----11

1

121`111 ????

?

?????----11

1

121`111

????

?

?????----11

1

121`111

????

?

?????---11

1

121`111

0°方向 45°方向

90°方向

135°方向

?????

?????----11

1

121111

?????

?????----11

1

121111

?????

?????----11

1

121111

????

?

?????----11

1

121`111

180°方向 225°方向 270°方向 315°方向

Prewitt 算子通过对图像上的每个像素点的八方向邻域的灰度加权差之和来进行检测边缘,对噪声有一定抑制作用,抗噪性较好,但由于采用了局部灰度平均,因此容易检测出伪边缘,并且边缘定位精度较低。

2.3.4Kirsch 算子

Kirsch 算子是一种 3×3 的非线性方向算子。其基本思想是希望改进取平均值的过程,从而尽量使边缘两侧的像素各自与自己同类的像素取平均值,然后再求平均值之差,来减小由于取平均值所造成的边缘细节丢失。通常采用八方向 Kirsch 模板的方法进行检测,取其中最大的值作为边缘强度,而将与之对应的方向作为边缘方向。常用的八方向 Kirsch 模板如下所示:

?????

?????-----53

3

503533

?????

?????-----33

3

503`553

?????

?????-----33

3

303555

????

?

?????-----33

3

305355

?????

?????-----33

5

305335 ?????

?????-----35

5

305333

??????????-----55

5

303333

????

?

??

???-----55

3

503`333

实际的应用中,通常都是利用简单的卷积核来计算方向差分的,不同的算子对应着不同的卷积核。它们在图像的像素点上所产生的两个方向的偏导数用均方值或者绝对值求和的形式来近似代替梯度幅值,然后选取一个合适的阈值,用所得到的梯度幅值和所设定的阈值进行比较来判断边缘点。若大于所取的阈值,则判断为边缘点;否则,判断为非边缘点。很显然,在提取边缘的过程中,阈值的选取特别重要,尤其在含噪图像中,阈值的选择要折衷考虑噪声造成的伪边缘和有效边缘的丢失。

2.3.5LOG 算子

LOG 算子基本思想是:先在一定的范围内做平滑滤波,然后再利用差分算子来检测在相应尺度上的边缘。滤波器的选择要考虑以下两个因素:其一是滤波器在空间上要求平稳,即要求空间位置误差 Δ x 要小;其二是平滑滤波器本身要求是带通滤波器,并且在有限的带通内是平稳的,即要求频域误差 Δω 要小。根据信号处理中的测不准原理, Δx 和 Δ ω是相互矛盾的,而达到测不准下限的滤波器就是高斯滤波器。Marr 和 Hildreth 提出的这种差分算子是各向同性的拉普拉斯二阶差分算子。该边缘检测器的基本特征是:

(1) 所用的平滑滤波器是高斯滤波器

(2) 增强步骤采用的是二阶导数(即二维拉普拉斯函数)

(3) 边缘检测的判据是二阶导数过零点并且对应一阶导数的极大值 该方法的特点是先用高斯滤波器与图像进行卷积,既平滑了图像又降低了噪声,使孤立的噪声点和较小的结构组织被滤除。然而由于对图像的平滑会导致边缘的延展,因此只考虑那些具有局部梯度极大值的点作为边缘点,这可以用二阶导数的零交叉来实现。拉普拉斯函数可用作二维二阶导数的近似,因为它是一种标量算子。为了避免检测出非显著的边缘,所以应该选择一阶导数大

于某一阈值的零交叉点来作为边缘点。实际应用中,常用的LOG算子的模版为:

这说明,高斯平滑运算不但可以滤除噪声,还会导致图像中的边缘和其它

尖锐不连续部分模糊,而模糊程度取决于空间尺度因子σ的大小。σ越大,高斯滤波对噪声的滤除效果越好,但同时也会丢失重要的边缘信息,影响到边缘

检测器的性能。如果σ较小,又可能导致平滑作用不完全而留有较多的噪声。

因此在实际应用中,要根据情况选择适当的σ。

2.3.6Canny算子

1986年,Canny从边缘检测算子应该满足的三个准则出发,推导出了最优

边缘检测算子Canny算子,该算子是目前理论上相对最完善的一种边缘检测算法。Canny提出的评价边缘检测性能优劣的三个准则分别是:

(1)好的信噪比准则。即将非边缘点判为边缘点的概率要低,将边缘点判为

非边缘点的概率要低;

(2)好的定位性能准则。即检测出的边缘点要尽可能在实际边缘的中心;

(3)单边缘响应准则。即单一边缘具有唯一响应,单一边缘产生的多个响应

的概率要低,并且对虚假边缘的响应应得到最大抑制。

利用Canny算子检测边缘的算法如下:

(1)用式所示的高斯函数h(r)对图像进行平滑滤波,去除图像中的噪声。

(2)在每一点计算出局部梯度和边缘方向,可以利用Sobel算子、Roberts算

子等来计算。边缘点定义为梯度方向上其强度局部最大的点。

(3)对梯度进行“非极大值抑制”。

(4)双阐值化和边缘连接。

3轮廓提取

图像的轮廓作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。它在图像识别,图像分割,图像增强以及图像压缩等的领域有广泛应用,也是图像处理的基础。

图像的轮廓往往携带着一幅图像的大部分信息。而轮廓即在于图像的不规则结构和不稳定上,也存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需的非常重要的特征条件,因而这就需要我们对一幅图像检测并提取出它的轮廓。经典的轮廓提取技术大都基于微分运算。首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。

本次课设所用的轮廓提取算法非常简单,就是掏空内部点:如果原图中有一点为黑,且它的8个相邻点都是黑色时(此时该点是内部点),则将该点删除。要注意的是,我们处理的虽然是二值图,但实际上是256级灰度图,不过只用到了0和255两种颜色。

4实验仿真

4.1 Sobel算子代码

function kirsch= edgekirsch(gray,th)

[m,n]=size(gray); %得到图像的大小(长和宽)

temp=double(gray);

kirsch=zeros(m,n); %定义一个大小为S的零矩阵

%利用Sobel算子进行边缘提取

for i=2:m-1

for j=2:n-1

d1 =(5*temp(i-1,j-1)+5*temp(i-1,j)+5*temp(i-1,j+1)-3*temp(i,j-1)-3*temp(i,j+1)-

3*temp(i+1,j-1)-3*temp(i+1,j)-3*temp(i+1,j+1))^2; %Sobel算子的dx(垂直梯度)

d2 =((-3)*temp(i-1,j-1)+5*temp(i-1,j)+5*temp(i-1,j+1)-3*temp(i,j-1)+5*temp(i,j+1)-3*temp(i+1,j-1)-3*temp(i+1,j)-3*temp(i+1,j+1))^2; %Sobel算子的dy(水平梯度)

d3 =((-3)*temp(i-1,j-1)-3*temp(i-1,j)+5*temp(i-1,j+1)-3*temp(i,j-1)+5*temp(i,j+1)-3*temp(i+1,j-1)-3*temp(i+1,j)+5*temp(i+1,j+1))^2;

d4 =((-3)*temp(i-1,j-1)-3*temp(i-1,j)-3*temp(i-1,j+1)-3*temp(i,j-1)+5*temp(i,j+1)-3*temp(i+1,j-1)+5*temp(i+1,j)+5*temp(i+1,j+1))^2;

d5 =((-3)*temp(i-1,j-1)-3*temp(i-1,j)-3*temp(i-1,j+1)-3*temp(i,j-1)-

3*temp(i,j+1)+5*temp(i+1,j-1)+5*temp(i+1,j)+5*temp(i+1,j+1))^2;

d6 =((-3)*temp(i-1,j-1)-3*temp(i-1,j)-3*temp(i-1,j+1)+5*temp(i,j-1)-

3*temp(i,j+1)+5*temp(i+1,j-1)+5*temp(i+1,j)-3*temp(i+1,j+1))^2;

d7 =(5*temp(i-1,j-1)-3*temp(i-1,j)-3*temp(i-1,j+1)+5*temp(i,j-1)-

3*temp(i,j+1)+5*temp(i+1,j-1)-3*temp(i+1,j)-3*temp(i+1,j+1))^2;

d8 =(5*temp(i-1,j-1)+5*temp(i-1,j)-3*temp(i-1,j+1)+5*temp(i,j-1)-3*temp(i,j+1)-

3*temp(i+1,j-1)-3*temp(i+1,j)-3*temp(i+1,j+1))^2;

tmp=d1;

if d2>tmp

tmp=d2;

else if d3>tmp

tmp=d3;

else if d4>tmp

tmp=d4;

else if d5>tmp

tmp=d5;

else if d6>tmp

tmp=d6;

else if d7>tmp

tmp=d7;

else if d8>tmp

tmp=d8;

end

end

end

end

end

end

end

kirsch(i,j)=round(sqrt(tmp));

% kirsch(i,j)=round(sqrt(d1+d2+d3+d4+d5+d6+d7+d8)); %梯度模取整

end

end

for i=1:m

for j=1:n

if kirsch(i,j)>th

kirsch(i,j)=255; %将梯度值与阈值比较,大于T则把图像的灰度变为255,小于T则把图像的灰度变为0

kirsch(i,j)=0;

end

end

end

close all

clear;

clc;

origin=imread('yunshen.jpg');

gray=rgb2gray(origin);

sobel=edge(gray,'sobel'); sobel 边缘检测器imwrite(sobel,'sobel.jpg');

figure(1),imshow(sobel),title('sobel edge');

4.2轮廓提取算法

BOOL Outline(HWND hWnd)

{

DWORD OffBits,BufSize; LPBITMAPINFOHEADER lpImgData;

LPSTR lpPtr;

HLOCAL hTempImgData; LPBITMAPINFOHEADER lpTempImgData; LPSTR lpTempPtr;

HDC hDc;

HFILE hf;

LONG x,y;

int nw,n,ne,w,e,sw,s,se;

//我们处理的实际上是256级灰度图,不过只用到了0和255两种颜色。if( NumColors!=256){

MessageBox(hWnd,"Must be a mono bitmap with grayscale palette!", "Error Message",MB_OK|MB_ICONEXCLAMATION);

return FALSE;

}

OffBits=bf.bfOffBits-sizeof(BITMAPFILEHEADER);

//BufSize为缓冲区大小

BufSize=OffBits+bi.biHeight*LineBytes;

//为新图缓冲区分配内存

if((hTempImgData=LocalAlloc(LHND,BufSize))==NULL)

{

MessageBox(hWnd,"Error alloc memory!","Error Message",MB_OK|

MB_ICONEXCLAMATION);

return FALSE;

}

lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData); lpTempImgData=(LPBITMAPINFOHEADER)LocalLock(hTempImgData); //拷贝头信息和位图数据

memcpy(lpTempImgData,lpImgData,BufSize);

for (y=1;y

//lpPtr指向原图数据,lpTempPtr指向新图数据

lpPtr=(char *)lpImgData+(BufSize-LineBytes-y*LineBytes);

lpTempPtr=(char *)lpTempImgData+(BufSize-LineBytes-y*LineBytes);

for (x=1;x

if(*(lpPtr+x)==0){ //是个黑点

//查找八个相邻点

nw=(unsigned char)*(lpPtr+x+LineBytes-1);

n=(unsigned char)*(lpPtr+x+LineBytes);

ne=(unsigned char)*(lpPtr+x+LineBytes+1);

w=(unsigned char)*(lpPtr+x-1);

e=(unsigned char)*(lpPtr+x+1);

sw=(unsigned char)*(lpPtr+x-LineBytes-1);

s=(unsigned char)*(lpPtr+x-LineBytes);

se=(unsigned char)*(lpPtr+x-LineBytes+1);

num=nw+n+ne+w+e+sw+s+se;

if(num==0) //说明都是黑点

*(lpTempPtr+x)=(unsigned char)255; //删除该黑点

}

}

}

if(hBitmap!=NULL)

DeleteObject(hBitmap);

hDc=GetDC(hWnd);

//创立一个新的位图

hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpTempImgData, (LONG)CBM_INIT,

(LPSTR)lpTempImgData+

sizeof(BITMAPINFOHEADER)+

NumColors*sizeof(RGBQUAD),

(LPBITMAPINFO)lpTempImgData,

DIB_RGB_COLORS);

hf=_lcreat("c://outline.bmp",0);

_lwrite(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER));

_lwrite(hf,(LPSTR)lpTempImgData,BufSize);

_lclose(hf);

//释放内存和资源

ReleaseDC(hWnd,hDc);

LocalUnlock(hTempImgData);

LocalFree(hTempImgData);

GlobalUnlock(hImgData);

return TRUE;

}

4.3仿真结果及分析

图一原图像图二 Sobel算子检测图像图三轮廓提取图像

Canny算子是基于最优化思想推导出的边缘检测算子,采用高斯函数对图像作平滑处理,因此具有较强的抑制噪声能力,同样该算子也会将一些高频边缘平滑掉,造成边缘丢失。Canny算子也存在不足之处,一是为了得到较好的边缘检测结果,它通常需要使用较大的滤波尺度,这样容易丢失一些细节;二是Canny算子的双阈值要人为的选取,不能够自适应。

5实验小结

几天来一直在做课程设计,以前对通信的认识都比较零散,只知道大致的用法,同时MATLAB功能强大,内容丰富,需要有一定的程序设计能力,还要对通信原理的相关知识有比较明确的把握,而这些我都是欠缺的,所以在做这次课设时,遇到很多的问题,不过,还是一直坚持下来了。

这次课设让我对MATLAB有了较清晰和直观的认识,尽管许多内部函数还不知道,程序设计也只是一知半解,但对以后的学习有了较好的指引。利用MATLAB以及其他的一些软件来进行通信原理等其他的课程学习是一个很好的方法。

不仅在知识学习上有较多的收获,在学习态度和方法上也起到了端正和提高作用,为了寻求知识的那份执著。这次课程设计给我们提供了一个应用自己所学知识的机会,从到图书馆查找资料到对程序的设计和仿真,都对我们所学的知识进行了检验。让我明白了设计系统程序的一些基本思想。

总体来说,这次课程设计让我受益匪浅。在摸索该如何设计程序使之实现所需功能的过程中,虽然很困难,但也很有趣,培养了我的设计思维,锻炼了操作能力。在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐。

6参考文献

【1】刘泉编.通信电子线路.武汉理工出版社.2007年

【2】陈怀琛等编.MATLAB及在电子信息课程中的应用.电子工业出版社.2007年【3】樊昌信等编.通信原理.国防工业出版社.2007年

【4】数字信号处理的MATLAB实现.科学出版社.2007年

【5】THEX-1型实验平台实验指导书

最新Canny边缘检测与轮廓提取汇总

C a n n y边缘检测与轮 廓提取

摘要................................................................................................................................................... Abstract.......................................................................................................................................... I 1 绪论 0 2 设计内容与OpenCV简介 (1) 2.1 设计任务内容 (1) 2.2 OpenCV简介 (1) 3 理论分析 (2) 3.1 边缘检测 (2) 3.1.1 图像的边缘 (2) 3.1.2 边缘检测的基本步骤 (2) 3.2 轮廓提取 (3) 4 边缘检测的算法比较 (4) 4.1 Reborts算子 (4) 4.2 Sobel算子 (5) 4.3 Prewitt 算子 (5) 4.4 Kirsch 算子 (7) 4.5 LOG算子 (7) 4.6 Canny算子 (8) 5 实验仿真 (10) 5.1算法设计 (10) 5.2 实验结果 (11) 6 分析与总结 (12) 参考文献 (13) 附录 (14)

边缘检测是图像处理和计算机视觉中的基本问题,它的目的是标识出数字图像中亮度变化明显的点。图像经过边沿检测处理之后,不仅大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。 事实上,边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置。这些轮廓常常是我们在图像边缘检测时,所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。 可用于图像边缘检测和轮廓提取的方法有很多,其中包括有常见的Robert边缘算子、Prewitt 边缘算子、Sobel边缘算子等等。本文首先将会从数字图像处理的角度,对几种边缘检测算法进行详细的分析,然后会并选择其中一种边缘检测算法进行实验。考虑到以后进一步的学习,本文将会使用openCV对算法进行实现。最后,本文将会把实验获得的实际效果,与理论分析的结果进行比对,并以此对本次实验进行总结。 关键字:边缘检测轮廓提取图像处理openCV

边缘提取不同算子方法的分析比较

目录 摘要....................................................................... I 1简介. (1) 1.1MATLAB 简介 (1) 1.2数字图像处理简介 (1) 2边缘检测 (3) 2.1边缘的含义 (3) 2.2边缘检测的含义 (3) 2.3边缘检测的步骤 (3) 3常用的边缘检测算子 (5) 3.1微分算子 (5) 3.1.1 Sobel算子 (5) 3.1.2 robert算子 (6) 3.1.3 prewitt算子 (6) 3.2 Laplacian算子 (6) 3.3 Log算法 (7) 3.4 Canny边缘检测法 (7) 4程序设计 (8) 5运行结果 (10) 6边缘检测结果比较 (12) 7心得体会 (13) 参考文献 (14)

摘要 边缘检测是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集。本设计利用MATLAB软件分析几种应用于数字图像处理中的边缘检测算子,根据它们在实践中的应用结果进行研究,主要包括:Robert 边缘算子、Prewitt 边缘算子、Sobel 边缘算子、LoG边缘算子以及Laplacian 算子等对图像边缘检测,根据实验处理结果对几种算子进行比较。 关键词:Matlab边缘检测算子

1简介 1.1MATLAB简介 Matlab是国际上最流行的科学与工程计算的软件工具,它起源于矩阵运算,已经发展成一种高度集成的计算机语言。有人称它为“第四代”计算机语言,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化界面设计、便捷的与其它程序和语言接口的功能。随着Matlab语言功能越来越强大,不断适应新的要求并提出新的解决方法,可以预见,在科学运算,自动控制与科学绘图领域,Matlab语言将长期保持其独一无二的地位。 Matlab 的特点如下: (1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; (2) 具有完备的图形处理功能,实现计算结果和编程的可视化; (3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; (4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具. Matlab的优势如下: (1)友好的工作平台和编程环境 (2)简单易用的程序语言 (3)强大的科学计算机数据处理能力 (4)出色的图形处理功能 (5)应用广泛的模块集合工具箱 (6)实用的程序接口和发布平台 (7)应用软件开发(包括用户界面) 1.2数字图像处理简介 数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程,以提高图像的实用性,达到人们所要求的预期结果。从处理的目的来讲主要有:

边缘提取

图像边缘提取的经典算法及展望 摘要:该文对现有图像边缘提取的经典边缘检测算子方法进行了介绍,对比、分析了各自的优缺点,为了更清楚地看出各种算法的效果,给出了一些常用算法对同一幅标准测试图像的原图像进行边缘提取的实验结果。最后,对图像边缘提取技术所面临的问题和发展方向阐述了自己的观点。 关键词:图像处理,边缘提取,边缘检测算子 中图分类号:TP 314.7 文献标识码:A The Algorithm for I m age Edge Detection and Prospect Abstract:The representative algorithms in these days for image edge detection have been presented in this paper.After contrasting and analyzing the advantages and the disadvantages of every algorithm.In order to have a much clearer look at the effect of every algorithm,we give the results of the experiments in which the common algorithms are used to detect image edge of the same standard testing image.At last,we bring forward our viewpoint about the problems the image edge detection technology is facing and where is its developmental direction . Key words:Image manipulation ;Edge recognition ;Edge recognition arithmetic operators 1 选题背景与研究意义 图像是人们从客观世界获取信息的重要来源,也是人类视觉延伸的重要手段。随着计算机和各个相关研究领域的迅速发展,科学计算的可视化、多媒体技术等研究与应用的兴起,数字图像处理从一个专门领域的学科,发展成为了一种新型的科学研究和人机界面的工具。通过对人类视觉系统的研究表明,图像中的边界特别重要,往往仅凭一些粗略的轮廓线就能够识别出一个物体,而轮廓线就是图像的边缘。图像的边缘是图像区域属性(像素灰度)发生明显变化的地方,也是图像信息最集中的地方,包含了图像的大部分特征信息,这些信息足图像识别中抽取特征的蕈要属性,能勾画出目标物体,是人类判别物体的重要依据。因此,图像的边缘是图像的最基本特征,被应用到较高层次的特征描述、图像识别、图像分割、图像增强以及图像压缩等图像处理和分析技术中,同时边缘提取也作为图像分析与模式识别的主要特征提取手段,应用于计算机视觉、模式识别等研究领域中IlJ。图像的边缘广泛存在于物体与背景之问、物体与物体之间,边缘检测的实质是采用某种算法提取出图像中对象与背景之间的交界线。通过边缘检测,提取出边缘才能将目标和背景区分开来,简化图像分析,突出图像的重要特征,降低后继图像分析处理的数据量,使图像理解及识别更加容易和深刻。因此,边缘提取算法是图像处理问题中经典技术之一,其优劣直接影响整个计算机视觉系统性能的好坏,它的解决对于我们进行高层次的图像特征描述、识别和理解等有着重大的影响。在数字图像处理的研究过程中,图像的边缘提取一直以来都是图像处理与分析领域的研究热点,也一直是机器视觉研究领域中最活跃的课题之一,在工程应用中占有十分重要的地位。因此,研究图像边缘提取方法具有重要的理论意义和现实意义。具有重要的意义。 2 研究现状及发展趋势 图像边缘提取的方法多种多样,但由于其本所具有的难度和深度,研究没有很大的突破性进展,至目前还没有提出一种方法或是理论,能完美地解决边缘提取问题,这也促使研究人员对此问题不断深入研究。 同时,由于目前的边缘提取评价方法都存在很大的局限性,所以对图像边缘提取评价系统的研究得到越来越多的关注。目前,用得较多的还是通过人眼进行主观判断,评价边缘提取方法的优劣。 总之,边缘提取算法主要存在两个问题:一是没有一种可以普遍使用的图像边缘提取算法;二是没有一个较好的通用的边缘提取的评价标准。因此,这两个问题也将成为今后研究解决的重点和研究趋

数字图像处理中的边缘检测技术

课程设计报告 设计题目:数字图像处理中的边缘检测技术学院: 专业: 班级:学号: 学生姓名: 电子邮件: 时间:年月 成绩: 指导教师:

数字图像处理中的边缘检测技术课程设计报告I 目录 1 前言:查阅相关文献资料,了解和掌握基本原理、方法和研究现状,以及实际应用的背景意义 (1) 1.1理论背景 (1) 1.2图像边缘检测技术研究的目的和意义 (1) 1.3国内外研究现状分析 (2) 1.4常用边缘检测方法的基本原理 (3) 2 小波变换和小波包的边缘检测、基于数学形态学的边缘检测法算法原理 (7) 2.1 小波边缘检测的原理 (7) 2.2 数学形态学的边缘检测方法的原理 (7) 3 算法实现部分:程序设计的流程图及其描述 (9) 3.1 小波变换的多尺度边缘检测程序设计算法流程图 (9) 3.2 数学形态学的边缘检测方法程序设计算法描述 (10) 4实验部分:对所给的原始图像进行对比实验,给出相应的实验数据和处理结果 (11) 5分析及结论:对实验结果进行分析比较,最后得出相应的结论 (15) 参考文献 (17) 附录:代码 (18)

1前言 查阅相关文献资料,了解和掌握基本原理、方法和研究现状,以及实际应用的背景意义 1.1 理论背景 图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。图像处理方法有光学方法和电子学方法。从20世纪60年代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。 图像处理在遥感技术,医学领域,安全领域,工业生产中有着广泛的应用,其中在医学应用中的超声、核磁共振和CT等技术,安全领域的模式识别技术,工业中的无损检测技术尤其引人注目。 计算机进行图像处理一般有两个目的:(1)产生更适合人观察和识别的图像。 (2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。 物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。 1.2 图像边缘检测技术研究的目的和意义 数字图像处理是伴随着计算机发展起来的一门新兴学科,随着计算机硬件、软件的高度发展,数字图像处理也在生活中的各个领域得到了广泛的应用。边缘检测技术是图像处理和计算机视觉等领域最基本的技术,如何快速、精确的提取图像边缘信息一直是国内外研究的热点,然而边缘检测也是图像处理中的一个难题。 首先要研究图像边缘检测,就要先研究图像去噪和图像锐化。前者是为了得到飞更真实的图像,排除外界的干扰,后者则是为我们的边缘检测提供图像特征更加明显的图片,即加大图像特征。两者虽然在图像处理中都有重要地位,但本次研究主要是针对图像边缘检测的研究,我们最终所要达到的目的是为了处理速

图像边缘检测算法体验步骤

图像边缘检测算法体验步骤 图像边缘检测算法体验步骤(Photoshop,Matlab)1. 确定你的电脑上已经安装了Photoshop和Matlab2. 使用手机或其他任何方式,获得一张彩色图像(任何格式),建议图像颜色丰富,分辨率比较高,具有比较明显的图像边界(卡通图像,风景图像,桌面图像)3. 将图像保存到一个能够找到的目录中,例如img文件夹(路径上没有汉字)4. 启动Photoshop,打开img文件夹中的图像5. 在工具箱中选择“矩形选择”工具,到图面上选择一个区域(如果分辨率比较高,建议不要太大,否则计算过程比较长)6. 点击下拉菜单【文件】-【新建】,新建一个与矩形选择框同样尺寸的Photoshop图像,不要求保存该图像7. 将该彩色图像转换为亮度图像,即点击下拉菜单【图像】-【模式】-【灰度】,如提示是否合并,选择“Yes”8. 将该单色的亮度图像另存为Windows的BMP文件,点击下拉菜单【文件】-【存储为】,在“存储为”窗口中,为该文件起一个名字,例如test1(保存为test1.bmp)9. 启动Matlab,将当期路径(Current Directory)定位到图像文件夹,例如这里的img文件夹10. 使用imread命令读入该图像,在命令行输入:>> f = imread(test1.bmp);11. 在Matlab中显示该图像,在命令行输入:>> figure, imshow(f)12. 然后,分别使用Matlab图像工具箱中的Edge函数,分别使用Sobel算法,高斯-拉普拉斯(Log)算法和Canny算法得到的边缘图像:在命令行输入:>> g_sobel = edge(f, sobel, 0.05); >> g_log = edge(f, log, 0.003, 2.25); >> g_canny = edge(f, canny, [0.04 0.10], 1.5);13 得到边缘图像计算结果后,显示这些边缘图像: >> figure, imshow(g_sobel) >> figure, imshow(g_log) >> figure, imshow(g_canny)14 可以用不同的图像做对比,后续课程解释算法后,可以变换不同的阈值,得到不同的边缘图像

图像轮廓线提取

数学实验报告 实验二图像轮廓线提取技术 学院 专业 姓名 学号 成绩单序号 提交日期

一、实验目的 1.了解对matlab的图像处理功能,掌握基本的图像处理方式; 2.掌握imread,imshow,imwrite,subplot,title等的基本使用方法。 3.掌握图像轮廓线提取的简单方法并上机实现。 4.了解matlab自带的边界检测算子的使用,提高对复杂图像处理的能力。 二、实验要求 1.任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析,并与MATLAB自带的边缘检测做对比。 2.提出其它的轮廓线提取方法,与简单阈值法进行比较分析。 三、实验过程 1.任意选取一幅灰度图像和一幅彩色图像,对算法中若干关键语句中进行调整,得出不同的实验结果,对这些结果进行分析。 ⑴灰度图的轮廓线提取,M文件代码: function gray(pix,n) %灰度图的轮廓线提取 A=imread(pix); %读取指定的灰度图%生成与图像对应的矩阵 [a,b]=size(A); %a,b分别等于矩阵A的行数和列数 B=double(A); %将矩阵A变为双精度矩阵 D=40*sin(1/255*B); %将矩阵B进行非线性变换 T=A; %新建与A同等大小矩阵 for p=2:a-1 %处理图片边框内的像素点 for q=2:b-1 if (D(p,q)-D(p,q+1))>n|(D(p,q)-D(p,q-1))>n|(D(p,q)-D(p+1,q))>n|(D(p,q)-D(p-1,q))>n|( D(p,q)-D(p-1,q+1))>n|(D(p,q)-D(p+1,q-1))>n|(D(p,q)-D(p-1,q-1))>n|(D(p,q)-D(p+1,q +1))>n T(p,q)=0; %置边界点为黑色%新建轮廓线矩阵 else T(p,q)=255; %置非边界点为白色 end; end; end; subplot(2,1,1); %将窗口分割为两行一列,下图显示于第一行 image(A); %显示原图像 title('灰度图原图'); %图释 axis image; %保持图片显示比例 subplot(2,1,2); %下图显示于第二行 image(T); %显示提取轮廓线后的图片

实验三 图像的边缘检测

实验三图像的边缘检测 一、实验目的与要求 1、了解图像边缘提取的基本概念; 2、了解进行边缘提取的基本方法; 3、编程实现对所给图像的边缘进行提取。 二、知识点 1、边缘检测的思想和原理 图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。边缘检测实际上就是检测图像特征发生变化的位置。 由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。边缘检测的方法大多数是基于方向导数掩模求卷积的方法。导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。

一阶导数是最简单的导数算子,它们分别求出了灰度在x和y方向上的变化率,而方向上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导,差分公式参考相关教材。 2、常用的梯度算子 (1)Roberts Cross算子,它的2个2 X2模板如图3所示。 图3 Robert Cross算子模板 (2)Prewitt 算子,它的2个3×3模板如图4所示。 图4 Prewitt算子模板 (3)Sobel 算子,它的2个3×3模板如图5所示。 图3 Sobel算子模板 3、高斯拉普拉斯(LoG)算法 高斯拉普拉斯(LoG)算法是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。其原理为,灰度

实验三图像分割与边缘检测

数字图像处理实验报告 学生姓名王真颖 学生学号L0902150101 指导教师梁毅雄 专业班级计算机科学与技术1501 完成日期2017年11月06日

计算机科学与技术系信息科学与工程学院

目录 实验一.................................................................................................. 错误!未定义书签。 一、实验目的.................................................................................................... 错误!未定义书签。 二、实验基本原理 ........................................................................................... 错误!未定义书签。 三、实验内容与要求....................................................................................... 错误!未定义书签。 四、实验结果与分析....................................................................................... 错误!未定义书签。实验总结............................................................................................... 错误!未定义书签。参考资料.. (3) 实验一图像分割与边缘检测 一.实验目的 1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法;

实验七 图像边沿检测及轮廓提取

实验七图像边沿检测及轮廓提取 1.图像的边沿检测 一、实验目的 1、掌握边沿检测的原理。 2、学习在DSP上实现边沿检测的方法。 二、实验仪器 1、硬件平台:C6000数字图像处理实验箱(型号ZY13DSP23BB)、摄像头、USB连接线。 2、软件平台:Windows98/2000/XP操作系统、Code Composer Studio 2.0 For C6000、ImageRECV 2.0 for ZY13DSP23BB。 三、实验原理 对于给出的一个模板和一幅图像 。 不难发现原图中左边暗,右边亮,中间存在着一条明显的边界。进行模板操作后的结果如下: 。 可以看出,第3、4列比其他列的灰度值高很多,人眼观察时,就能发现一条很明显的亮边,其它区域都很暗,这样就起到了边沿检测的作用。为何会如此呢?仔细看看那个模板就明白了,它的意思是将右邻点的灰度值减左邻点的灰度值作为该点的灰度值。在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边界附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果。 这种模板就是一种边沿检测器,它在数学上的涵义是一种基于梯度的滤波器,又称边沿算子。梯度是有方向的,和边沿的方向总是正交(垂直)的。例如,对于上面那幅图像的转置

图像,边沿是水平方向的,我们可以用梯度是垂直方向的模板检测它的边沿。再例如, 一个梯度为45度方向模板,可以检测出135度方向的边沿。 在边沿检测中,常用的一种模板是Sobel 算子。Sobel 算子有两个,一个是检测水平边沿的;另一个是检测垂直边沿的。与和 相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。 如下图,图19-1是对图1-2进行Sobel算子处理后的结果图,可以看出Sobel算子确实把图像中的边沿提取了出来。 图19-1 Sobel算子处理后结果 四、实验步骤 1、将光盘上的“examples\EdgeCheck”目录复制到计算机硬盘,去掉目录中所有文件的只读属性; 2、通过USB连接线,将C6000数字图像处理实验箱与PC的USB口相连接,如果PC 提示找到新硬件,则表示连接成功; 3、启动Code Composer Studio 2.0 For C6000; 4、启动ImageRECV 2.0 for ZY13DSP23BB; 5、打开“Project”菜单,选择“Open…”菜单项,找到并打开硬盘上目录“examples\EdgeCheck”,选择EdgeCheck.pjt工程文件; 6、打开“Project”菜单,选择“Rebuild all…”菜单项,编译程序,生成EdgeCheck.out文件; 7、打开“File”菜单,选择“Load program…”菜单项,选择“examples\ EdgeCheck \Debug\EdgeCheck.out”,程序将加载到DSP上; 8、运行:快捷键“F5”或选择“Debug”菜单中的“Run”项;

灰度图像边缘提取方法综述

内蒙古科技大学 本科毕业论文 题目:灰度图像边缘提取方法综述学生姓名: 学院:物理科学与技术学院 专业:应用物理学 学号:0809810054 班级:08级 指导教师: 二〇一二年 4 月

摘要 本文先介绍了一般边缘检测的步骤和灰度图像形态学的主要操作。着重讨论基于细胞神经网络的一般灰度图像的边缘提取和图像分割。先陈述了几种传统算法,并比较了各算法的优劣。通过例举介绍CNN 基本知识,详细描述了用CNN 提取图像边缘的过程,给出算法流程,阐述算法实现中的关键步骤。对二值图像和灰度图像,分别采用基于CNN 的算法和传统算子(prewitt、sobel、canny)进行边缘提取,给出提取效果图,定性比较两类算法在性能上的优劣。来直接的了解灰度图像边缘提取的方法。 关键字:灰度图像,边缘提取,分割,CNN算法,传统算子

Abstract This paper first introduces the general steps of gray image edge detection and morphology of the main operation. Focuses on the cellular neural network based general gray image edge extracting and image segmentation. Through the examples of introduction of basic knowledge of CNN, a detailed description of the CNN image edge extraction process, the algorithm process, the key step in the algorithm implementation. On two value image and the gray scale image, which are based on CNN algorithm and the traditional operator ( Prewitt, Sobel, canny ) edge extraction, given the extraction effect chart, qualitative comparison of two algorithms in performance on the quality of. To direct understanding of gray image edge extraction method. Keywords: image, edge detection, segmentation, CNN algorithm, the traditional operator

图像边缘检测及提取,分水岭算法

1.几种算子图像边缘提取: 程序代码如下: 运行结果: 原图为一堆苹果(彩图),各算子处理后的边缘提取图:

分水岭算法实现: a.直接对图像进行分水岭算法处理 代码如下:(原图还是上题一堆苹果) 运行结果如右图: 很明显,属于过度分割了。下面有改进算法: b.改进算法代码如下: 实现包括下列步骤: (1)读图像。读入图像 (2)对比度最大化。注意到图像中有许多彼此连通的 不同大小的对象。为使通过watershed变换找到的低 谷数目最小,我们使感兴趣的对象的对比度达到最 大。对比度增强的一个常用的技术是综合应用top— hat和bottom—hat变换。 top—hat变换定义为原图像和它的开之差。图像的 开是一与特定结构元素匹配的图像前景部分的集合。 bottom—hat变换定义为在原图像和它的闭之间的 差。图像的闭是一与特定结构元素匹配的图像背景 的集合。 通用的结构元素是正方形,长方形,圆盘,菱 形,球和线。既然图像中我们感兴趣的目标对象看 起来像圆盘,我们用strel函数建立一个半径为15个 像素的圆盘形结构元素。这个圆盘尺度是图像中的 目标对象的平均半径的一个估计。 (3)图像相加减。为使目标对象与分隔它们的间隙之 间的对比达到最大,用“原图top—hat图像+bottom —hat图像”得到增强的结果图。 ( 4)转换感兴趣的对象。调用watershed变换找出图像 的亮度”低谷”,把imcomplement作用 增强过的图像上,将感兴趣的目标对象转换为亮度低谷,得到增强图的补图。 (5)检测亮度低谷。对所得补图运用imextendedmin函数检测低于某特别阈值的所有亮度低谷。

图像边缘检测方法的研究与实现刘法200832800066

图像边缘检测方法的研究与实现刘法200832800066

青岛大学专业课程设计 院系: 自动化学院 专业: 电子信息工程 班级: 08级电子信息工程3班学生姓名: 刘法 指导教师: 王汉萍庄晓东 日期: 2011年12月23日

题目:图像边缘检测方法的研究与实现 一、边缘检测以及相关概念 1.1边缘,边缘检测的介绍 边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edge detection). 边缘检测是指使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。 在讨论边缘算子之前,首先给出一些术语的定义: 边缘点:图像中具有坐标] ,[j i且处在强度显著变化的位置上的点.边缘段:对应于边缘点坐标] i及其方位 ,边缘的方位可能是梯度角. ,[j 边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法. 轮廓:边缘列表,或是一条表示边缘列表的拟合曲线. 边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序. 边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程. 边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘.边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集.另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘. 1.2 边缘检测算子 边缘检测是图像特征提取的重要技术之一, 边缘常常意味着一个区域的终结和另一个区域的开始. 图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构. 因此,边缘检测可以看做是处理许多复杂问题的关键. 边缘检测的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。经典的边缘检测方法是对原始图像中的像素的某个邻域来构造边缘检测算子。以下是对几种经典的边缘检测算子进行理论分析,并对各自的性能特点做出比较和评价。 边缘检测的原理是:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值教高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。

halcon边缘提取缺陷检测的思路

一、边缘提取 1、设置ROI兴趣区域 2、快速二值化,并连接相邻区域。这样做的目的是进一步减少目标区域,通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓.常用函数有boundary,gen_contour_region_xld 4、根据自己的需求提取需要的初步轮廓 5、将初步提取的初步轮廓进行膨胀操作 6、将膨胀后的区域和原图进行减操作(在这步之前有可能需要对原图进行高斯滤波)。这样就能得到只有边缘的真实图像 7、用canny或其他算子(根据需要)提取亚像素轮廓,一般使用edges_sub_pix函数 8、处理和计算 得到真实的边缘XLD后你可能需要进一步处理得到你想要的线、弧等。 你可能用到的函数segment_contours_xld(分割)union_collinear_contours_xld(联合相邻或相同角度直线)select_contours_xld(提取想要的轮廓)union_cocircular_contours_xld(联合相同圆)等等 得到轮廓后如果你不知道怎么处理后得到你想要的东西(线、弧、圆、角、矩形)你都可以将轮廓转化为点,然后用点集合来拟合任何你想要的东西。 二、BLOB分析检测(前面一篇有详细讲解,本骗只讲思路) 1、应用ROI,可以使Blob分析加速。 2、匹配ROI区域或图像,详将GUIDEIIB以形状为基础的匹配。 3、校正图像<经常用来去除镜头畸变或把图像转换到参考点视角,如双目视觉时的图像校正> 4、图像前处理 5、引用分割参数 6、分割图像 7、区域处理 8、特征提取 9、把提取的结果转换到世界坐标中 10、结果可视化。 三、赃物检测 1、得到两个不同高斯标准差的高斯积卷 2、对原始图像进行傅里叶变换'to_fre' 3、用之前的积卷对图像做积卷滤波 4、傅里叶反变换‘from_fre’

图像边缘提取方法及展望

1引言 图像最基本的特征是边缘,边缘是图像性区域和另一个属性区域的交接处,是区域属性发生突变的地方,是图像中不确定性最大的地方,也是图像信息最集中的地方,图像的边缘包含着丰富的信息。因此,图像的边缘提取在计算机视觉系统的初级处理中具有关键作用,但目前仍是“瓶颈”问题。 边缘检测技术对于数字图像是非常重要的,提取出边缘才能将目标和背景区分开来。现有的图像边缘提取方法可以分为三大类:一类是基于某种固定的局部运算方法,如:微分法,拟合法等,它们属于经典的边缘提取方法;第二类则是以能量最小化为准则的全局提取方法,其特征是运用严格的数学方法对此问题进行分析,给出一维值代价函数作为最优提取依据,从全局最优的观点提取边缘,如松驰法,神经网络分析法等;第三类是以小波变换、数学形态学、分形理论等近年来发展起来的高新技术为代表的图像边缘提取方法,尤其是基于多尺度特性的小波变换提取图像边缘的方法是目前研究较多的课题。该文将较为详细地对各种图像边缘提取算法的原理进行阐述,对几种最常用的图像边缘提取算法给出实验结果,并进行结果对比与分析。 2经典的图像边缘提取方法 2.1微分算子法 边缘的检测可借助空域微分算子通过卷积完成,导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。 一阶导数 !f !x 与 !f !y 是最简单的导数算子,一个连续函数f(x,y)在位置(x,y)处方向导数的最大值是I G I=( !f !x )2+(!f !y )2 [I12,称为梯度模,相应地,取得最大值的方向为"=tan-1 !f !y !f !x T I I L T I I J 。 利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。在实际中,对于一幅数字图像采用了梯度模的近似形式,如常用的罗伯特交叉算子(Roberts Cross)和索贝尔算子(SobeI)的表达式分别为: Roberts算子表达式为: \G\=maX(I f(i,J)-f(i+1,J+1)I,I f(i+1,J)-f(i,J+1)I) SobeI算子表达式为: 121 000 -1-2- T I I L T I I J 1 10-1 20-2 10- T I I L T I I J 1 x方向卷积核y方向卷积核 图像边缘提取方法及展望 季虎孙即祥邵晓芳毛玲 (国防科技大学电子科学与工程学院,长沙410073) E-maiI:Iove63901@https://www.360docs.net/doc/fa7482535.html, 摘要该文对现有代表性的各种图像边缘提取方法进行了介绍,对比、分析了各自的优缺点,重点对以小波变换为代表的现代信号处理技术提取图像边缘的方法进行了分析和阐述,为了更清楚地看出各种算法的效果,给出了一些常用算法对同一幅标准测试图像Lena进行边缘提取的实验结果。最后,对图像边缘提取技术所面临的问题和发展方向阐述了自己的观点。 关键词边缘提取小波变换多尺度分析图像边缘检测 文章编号1002-8331-(2004)14-0070-04文献标识码a中图分类号TP391 The Algorithm for Image Edge Detection and Prospect Ji Hu Sun Jixiang Shao Xiaofang Mao Ling (SchooI of EIectronic and Engineering,NationaI University of Defense TechnoIogy,Changsha410073)Abstract:The representative aIgorithms in these days for image edge detection have been presented in this paper.after contrasting and anaIyzing the advantages and the disadvantages of every aIgorithm,we pIace an emphasis on anaIyzing and iIIuminating waveIet transform,which is one of the modern signaI processing technigues for image edge detection.in order to have a much cIearer Iook at the effect of every aIgorithm,we give the resuIts of the eXperiments in which the common aIgorithms are used to detect image edge of the same standard testing image Lena.at Iast,we bring forward our viewpoint about the probIems the image edge detection technoIogy is facing and where is its deveIopmentaI direction. Keywords:edge detection,waveIet transform,muItiscaIe anaIysis,image edge detection 作者简介:季虎(1972-),男,工程师,博士研究生,主要研究方向为计算机视觉、图像处理、模式识别。孙即祥(1946-),男,教授,博士生导师,现已出版专著三部,并正在撰写另外一部专著,已发表论文十数篇。主要感兴趣的研究方向为计算机视觉、图像处理、模式识别等。 70 2004.14计算机工程与应用

Matlab做图像边缘检测的多种方法

Matlab做图像边缘检测的多种方法 1、用Prewitt算子检测图像的边缘 I = imread('bacteria.BMP'); BW1 = edge(I,'prewitt',0.04); % 0.04为梯度阈值 figure(1); imshow(I); figure(2); imshow(BW1); 2、用不同σ值的LoG算子检测图像的边缘 I = imread('bacteria.BMP'); BW1 = edge(I,'log',0.003); % σ=2 imshow(BW1);title('σ=2') BW1 = edge(I,'log',0.003,3); % σ=3 figure, imshow(BW1);title('σ=3') 3、用Canny算子检测图像的边缘 I = imread('bacteria.BMP'); imshow(I); BW1 = edge(I,'canny',0.2); figure,imshow(BW1); 4、图像的阈值分割 I=imread('blood1.tif'); imhist(I); % 观察灰度直方图,灰度140处有谷,确定阈值T=140 I1=im2bw(I,140/255); % im2bw函数需要将灰度值转换到[0,1]范围内 figure,imshow(I1); 5、用水线阈值法分割图像 afm = imread('afmsurf.tif');figure, imshow(afm); se = strel('disk', 15); Itop = imtophat(afm, se); % 高帽变换 Ibot = imbothat(afm, se); % 低帽变换 figure, imshow(Itop, []); % 高帽变换,体现原始图像的灰度峰值 figure, imshow(Ibot, []); % 低帽变换,体现原始图像的灰度谷值 Ienhance = imsubtract(imadd(Itop, afm), Ibot);% 高帽图像与低帽图像相减,增强图像figure, imshow(Ienhance); Iec = imcomplement(Ienhance); % 进一步增强图像

图像边缘检测技术综述

第 42 卷增刊 1 中南大学学报(自然科学版) V ol.42 Suppl. 1 2011 年 9 月 Journal of Central South University (Science and Technology) Sep. 2011 图像边缘检测技术综述 王敏杰 1 ,杨唐文 1, 3 ,韩建达 2 ,秦勇 3 (1. 北京交通大学 信息科学研究所,北京,100044; 2. 中国科学院沈阳自动化研究所 机器人学国家重点实验室,辽宁 沈阳,110016; 3. 北京交通大学 轨道交通控制与安全国家重点实验室,北京,100044) 摘要:边缘检测是图像处理与分析中最基础的内容之一。首先介绍了几种经典的边缘检测方法,并对其性能进行 比较分析;然后,综述了近几年来出现的一些新的边缘检测方法;最后,对边缘检测技术的发展趋势进行了展望。 关键词:数字图像;边缘检测;综述 中图分类号:TP391.4 文献标志码:A 文章编号:1672?7207(2011)S1?0811?06 Review on image edge detection technologies W ANG Min-jie 1 , Y ANG Tang-wen 1,3 , HAN Jian-da 2 ,QIN Y ong 3 (1.Institute of Information Science,Beijing Jiaotong University, Beijing 100044, China? 2.State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academic of Science,Shenyang 110016, China? 3.State Key Laboratory of Rail Traffic Control and Safety, Beijing Jiaotong University, Beijing 100044, China) Abstract: Edge detection is one of the most fundamental topics in the research area of image processing and analysis. First, several classical edge detection methods were introduced, and the performance of these methods was compared? then, several edge detection methods developed in the latest years were reviewed? finally, the trend of the research of the image edge detection in the future was discussed. Key words:digital image?edge detection?review 图像是人们从客观世界获取信息的重要来源 [1?2] 。 图像信息最主要来自其边缘和轮廓。所谓边缘是指其 周围像素灰度急剧变化的那些象素的集合,它是图像 最基本的特征。边缘存在于目标、背景和区域之 间 [3?4] ,它是图像分割所依赖的最重要的依据。边缘检 测 [5?8] 是图像处理和计算机视觉中的基本问题, 图像边 缘检测是图像处理中的一个重要内容和步骤,是图像 分割、目标识别等众多图像处理的必要基础 [9?10] 。因 此,研究图像边缘检测算法具有极其重要的意义。 边缘检测是计算机视觉和图像处理领域的一项基 本内容。准确、高效地提取出边缘信息一直是该领域 研究的重点内容 [11] 。最初的经典算法可分为边缘算子 法、曲面拟合法、模板匹配法、门限化法等。近年来, 随着数学理论和人工智能的发展,又出现了一些新的 边缘检测的算法 [12?13] ,如基于数学形态学的边缘检 测 [14] 、小波变换和小波包变换的边缘检测法 [15] 、基于 模糊理论的边缘检测法 [16?17] 、基于神经网络的边缘检 测法 [18] 、基于分形几何的边缘检测算法 [19] 、基于遗传 算法的边缘检测法 [20?21] 、漫射边缘的检测方法 [22] 、多 尺度边缘检测技术 [23] 、亚像素边缘的定位技术 [24] 、 收稿日期:2011?04?15;修回日期:2011?06?15 基金项目:轨道交通控制与安全国家重点实验室开放基金资助项目(RCS2010K02);机器人学国家重点实验室开放基金资助项目(RLO200801);北 京交通大学基本科研业务费资助项目(2011JBM019) 通信作者:王敏杰(1988-), 女, 黑龙江五常人, 硕士研究生, 从事图像处理和计算机视觉研究; 电话: 010-51468132; E-mail: wangminjie1118@https://www.360docs.net/doc/fa7482535.html,

相关文档
最新文档