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

合集下载

图像边缘提取

图像边缘提取

图像边缘提取图像的边界信息⼀般通过灰度值突变来体现,所以图像边缘提取⼀般通过捕捉灰度突变的⽅法来实现,捕捉灰度突变可以通过求微分来实现导数越⼤说明变化越⼤,边缘信号越强1.Sobel算⼦也叫离散微分算⼦,⼀阶微分算⼦,求导算⼦,先做⾼斯平滑在做微分求导可以在各个⽅向上求图像的梯度如⽔平⽅向 Gx=[-1,0,1,-2,0,2,-1,0,1],垂直⽅向Gy=[-1,-2,-1,0,0,0,1,2,1]最终G=sqrt(Gx^2+Gy^2),或者G=|Gx|+|Gy|第⼆种的运算速度要快于第⼀种,所以⼀般采⽤第⼆种⽅法Sobel算⼦的改进版叫Scharr算⼦[-3,0,3,-10,0,10,-3,0,3]#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char **argv){Mat src, dst;src = imread("b.png");if (src.empty()){cout << "load img failed" << endl;return -1;}imshow("input img", src);Mat gaussian,gray_src;GaussianBlur(src, gaussian, Size(3, 3), 0, 0);cvtColor(gaussian, gray_src, CV_BGR2GRAY);imshow("blur gray", gray_src);Mat xgrad, ygrad;Sobel(gray_src, xgrad, CV_16S, 1, 0, 3);Sobel(gray_src, ygrad, CV_16S, 0, 1, 3);convertScaleAbs(xgrad, xgrad);convertScaleAbs(ygrad, ygrad);imshow("x grade", xgrad);imshow("y grade", ygrad);addWeighted(xgrad, 0.5, ygrad, 0.5, 0, dst);imshow("output img", dst);/*dst = Mat(xgrad.size(), xgrad.type());int width = dst.cols;int height = dst.rows;for(int i=0;i<height;++i)for (int j = 0; j < width; ++j){int xg = xgrad.at<char>(i, j);int yg = ygrad.at<char>(i, j);int xy = xg + yg;dst.at<char>(i, j) = saturate_cast<uchar>(xy);}imshow("output img", dst);*/waitKey(0);return0;}plance算⼦求⼆阶导数,在⼆阶导数的时候,最⼤变化处的值为0,即边缘的⼆阶导数是0流程:⾼斯模糊去噪GaussianBlur()转为灰度值cvtColor()Laplance⼆阶导数计算Laplancian()取绝对值convertScaleAbs()显⽰结果#include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;int main(int argc, char **argv){Mat src, dst;src = imread("b.png");if (src.empty()){cout << "load img failed" << endl;return -1;}imshow("input img", src);Mat gaussian,gray_src;GaussianBlur(src, gaussian, Size(3, 3), 0, 0);cvtColor(gaussian, gray_src, CV_BGR2GRAY);imshow("blur gray", gray_src);Laplacian(gray_src, dst, CV_16S,3);convertScaleAbs(dst, dst);imshow("Laplacian", dst);threshold(dst, dst, 0, 255, THRESH_OTSU | THRESH_BINARY);imshow("output img", dst);/*dst = Mat(xgrad.size(), xgrad.type());int width = dst.cols;int height = dst.rows;for(int i=0;i<height;++i)for (int j = 0; j < width; ++j){int xg = xgrad.at<char>(i, j);int yg = ygrad.at<char>(i, j);int xy = xg + yg;dst.at<char>(i, j) = saturate_cast<uchar>(xy);}imshow("output img", dst);*/waitKey(0);return0;}3.Canny边缘检测步骤:⾼斯模糊 GaussianBlur灰度转换cvtColor计算梯度Sobel/Scharr⾮最⼤信号抑制⾼低阈值输出⼆值图像⾮最⼤信号抑制需要计算梯度⽅向T1为低阈值,T2为⾼阈值,凡是⾼于T2的都保留,凡是低于T1的都丢弃,从⾼于T2的像素出发,凡是⼤于T1且相互连接的都保留,最终得到⼀个输出⼆值图像推荐的⾼低阈值⽐为3:1或2:1Canny(src,dst,threshold_low,threshold_high,Sobel_size,Lwgradient)最后⼀个如果是true就⽤L2归⼀化(开根),如果不是就L1归⼀化(绝对值),⼀般⽤L1 #include<iostream>#include<opencv2/opencv.hpp>using namespace std;using namespace cv;Mat src, dst, gray_src, gaussian;int t1_value = 50;int max_value = 255;const char* OUTPUT_TITLE = "Canny Result";void Canny_Demo(int,void*);int main(int argc, char **argv){//Mat src, dst;src = imread("b.png");if (src.empty()){cout << "load img failed" << endl;return -1;}imshow("input img", src);//Mat gaussian,gray_src;//GaussianBlur(src, gaussian, Size(3, 3), 0, 0);namedWindow(OUTPUT_TITLE, CV_WINDOW_AUTOSIZE);cvtColor(src, gray_src, CV_BGR2GRAY);createTrackbar("Threshold Value :", OUTPUT_TITLE, &t1_value, max_value, Canny_Demo);Canny_Demo(0, 0);waitKey(0);return0;}void Canny_Demo(int, void*){Mat edge_output;blur(gray_src, gray_src, Size(3, 3), Point(-1, -1), BORDER_DEFAULT);Canny(gray_src, edge_output, t1_value, t1_value * 2, 3, false);//dst.create(src.size(), src.type());//src.copyTo(dst, edge_output);imshow(OUTPUT_TITLE, ~edge_output);}去掉注释会变成彩⾊图,注意修改imshow中的输出变量。

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

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

内蒙古科技大学本科毕业论文二〇一二年 4 月摘要本文先介绍了一般边缘检测的步骤和灰度图像形态学的主要操作。

着重讨论基于细胞神经网络的一般灰度图像的边缘提取和图像分割。

先陈述了几种传统算法,并比较了各算法的优劣。

通过例举介绍CNN 基本知识,详细描述了用CNN 提取图像边缘的过程,给出算法流程,阐述算法实现中的关键步骤。

对二值图像和灰度图像,分别采用基于CNN 的算法和传统算子(prewitt、sobel、canny)进行边缘提取,给出提取效果图,定性比较两类算法在性能上的优劣。

来直接的了解灰度图像边缘提取的方法。

关键字:灰度图像,边缘提取,分割,CNN算法,传统算子AbstractThis 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引言 (5)1、灰度图像边缘检测 (6)1.1、边缘检测的步骤 (6)2、几种边缘提取算子 (6)2.1 Roberts算子 (6)2.2、Sobel算子 (7)2.3、Prewitt算子由下式给出 (7)2.4、Canny算子 (8)3.传统算子的优缺点 (8)3.1 Sobel算子 (8)3.2 Robert算子 (8)3.3 Prewitt算子 (8)3.4 Canny算子 (9)4、基于细胞神经网络的灰度图像边缘提取 (9)4.1、CNN 基本知识 (9)4.2、基于CNN 的图像边缘提取 (11)4.3、图像分割的质量评价 (12)4.4、实验分析 (14)结论 (16)参考文献 (17)致谢 (18)图像边缘是图像信息中某种不连续性的表现形式,是图像最基本的特征之一。

形态学边缘提取算法

形态学边缘提取算法

形态学边缘提取算法一、概述形态学边缘提取算法是图像处理中的一种重要算法,它可以用于图像分割、目标检测等领域。

该算法基于形态学理论,通过对图像进行膨胀和腐蚀操作,从而得到目标的边缘信息。

二、形态学基础知识1. 结构元素结构元素是形态学操作中的一个重要概念,它是一个小的二值图像,用于对原始图像进行变换。

常见的结构元素有矩形结构元素、十字形结构元素、圆形结构元素等。

2. 膨胀操作膨胀操作是指将结构元素沿着原始图像进行卷积运算,并将结果与原始图像进行比较,得到新的二值图像。

膨胀操作可以使目标区域变大,并填充空洞。

3. 腐蚀操作腐蚀操作是指将结构元素沿着原始图像进行卷积运算,并将结果与原始图像进行比较,得到新的二值图像。

腐蚀操作可以使目标区域变小,并去除孤立点。

三、基本思路1. 对原始灰度图像进行二值化处理。

2. 对二值图像进行膨胀操作。

3. 对膨胀后的图像进行腐蚀操作。

4. 将原始二值图像与经过腐蚀后的图像进行比较,得到边缘信息。

四、具体实现1. 二值化处理二值化处理是将灰度图像转换为二值图像的过程。

常用的方法有全局阈值法、自适应阈值法等。

在形态学边缘提取算法中,一般采用全局阈值法将灰度图像转换为二值图像。

2. 膨胀操作对于给定的结构元素,设其大小为n×m,则对于原始图像I(x,y),结构元素B(i,j),其卷积运算结果为:D(x,y)=max{I(x+i,y+j)+B(i,j)}其中,max表示取最大值运算。

3. 腐蚀操作对于给定的结构元素,设其大小为n×m,则对于原始图像I(x,y),结构元素B(i,j),其卷积运算结果为:E(x,y)=min{I(x+i,y+j)-B(i,j)}其中,min表示取最小值运算。

4. 边缘提取将经过腐蚀后的二值图像与原始二值图像进行比较,得到边缘信息。

常用的方法有差异运算、梯度运算等。

其中,差异运算可以表示为:S(x,y)=I(x,y)-E(x,y)五、优化方法1. 多尺度形态学边缘提取多尺度形态学边缘提取是指对图像进行不同尺度的膨胀和腐蚀操作,从而得到多个尺度的边缘信息。

灰度重心法 定位边缘

灰度重心法 定位边缘

灰度重心法定位边缘灰度重心法和定位边缘是数字图像处理中常用的两种方法。

灰度重心法是一种基于图像灰度值分布的特征提取方法,用于确定物体的几何中心。

而定位边缘则是一种检测图像中物体边缘的方法,可以用于目标识别和跟踪等应用。

一、灰度重心法1. 灰度重心法原理灰度重心法是利用物体在图像上的灰度分布来确定其几何中心。

对于一个二值化的图像,其几何中心可以通过计算黑色像素点和白色像素点在x和y方向上的平均值得到。

但对于一个灰度图像,其像素点不仅有黑白两种颜色,还有不同程度的灰色。

因此,在计算几何中心时,需要考虑每个像素点所占据的权重。

设I(x,y)表示图像上坐标为(x,y)处的像素值,Gx和Gy分别表示在x和y方向上所有像素点所占据权重的平均值,则物体在x和y方向上的几何中心可以表示为:Xc = ∑(I(x,y)*x)/∑I(x,y)Yc = ∑(I(x,y)*y)/∑I(x,y)其中∑I(x,y)表示图像中所有像素点的灰度值之和。

2. 灰度重心法应用灰度重心法常用于图像分割、目标跟踪、形状识别等领域。

例如,在目标跟踪中,可以通过计算物体在前一帧和当前帧中的几何中心来确定物体的运动轨迹。

二、定位边缘1. 定位边缘原理定位边缘是一种检测图像中物体边缘的方法。

在数字图像处理中,边缘是指物体与背景之间的明显变化区域。

通过检测这些变化区域,可以确定物体的轮廓和形状。

常用的定位边缘方法包括Canny算子、Sobel算子、Laplacian算子等。

其中Canny算子是最经典和最常用的方法之一。

它基于图像梯度的变化率来检测边缘,并采用非极大值抑制和双阈值分割等技术来提高检测精度。

2. 定位边缘应用定位边缘常用于目标识别、图像增强、自动驾驶等领域。

例如,在自动驾驶中,可以通过检测道路边缘来确定车辆的行驶方向和位置。

总结:灰度重心法和定位边缘是数字图像处理中常用的两种方法。

灰度重心法基于图像灰度值分布的特征提取,用于确定物体的几何中心;定位边缘则是一种检测图像中物体边缘的方法,可以用于目标识别和跟踪等应用。

边缘提取原理

边缘提取原理

边缘提取原理边缘提取是一种常用的图像处理技术,用于从图像中提取出物体的边缘信息。

边缘是图像中物体之间的分界线,其具有明显的灰度或颜色变化。

边缘提取的目的是通过检测这些变化来揭示图像中的物体轮廓,从而实现图像分析、目标识别和计算机视觉等应用。

边缘提取的原理可以简单描述为以下几个步骤:1.图像灰度化:将彩色图像转换为灰度图像。

这是因为边缘通常由灰度或颜色变化引起,因此只需要对图像进行灰度处理即可。

2.图像平滑化:使用滤波器对图像进行平滑化操作。

平滑化的目的是降低图像中的噪声,使得边缘检测更加准确。

常用的滤波器有高斯滤波器和中值滤波器。

3.边缘检测算法:边缘检测是边缘提取的核心步骤,它通过计算图像中像素点的梯度来检测边缘。

常用的边缘检测算法有Sobel算子、Prewitt算子和Canny算子等。

- Sobel算子是一种基于梯度的边缘检测算法,它通过计算图像中像素点的梯度幅值来检测边缘。

Sobel算子分为水平和垂直两个方向,分别计算像素点在x和y方向上的梯度。

- Prewitt算子也是一种基于梯度的边缘检测算法,它与Sobel算子类似,但使用的模板不同。

Prewitt算子的模板是一个3x3的矩阵,分为水平和垂直两个方向。

- Canny算子是一种基于多阈值的边缘检测算法,它通过计算图像中像素点的梯度幅值和方向来检测边缘。

Canny算子的优点是能够检测到细节边缘,并且对噪声具有较好的抑制能力。

4.边缘连接:在边缘检测后,通常会得到一些不连续的边缘片段。

边缘连接的目的是将这些片段连接成连续的边缘线条。

常用的边缘连接算法有霍夫变换和分水岭算法等。

- 霍夫变换是一种常用的边缘连接算法,它通过将图像空间转换为参数空间,并在参数空间中进行投票来检测直线、圆等形状的边缘。

- 分水岭算法是一种基于区域的边缘连接算法,它通过将图像分割成不同的区域,并在区域之间进行分水岭漫水填充来连接边缘。

边缘提取在计算机视觉、图像处理和模式识别等领域具有广泛的应用。

图像处理中的边缘提取算法综述

图像处理中的边缘提取算法综述

图像处理中的边缘提取算法综述图像处理是计算机视觉领域中的重要研究方向之一,而边缘提取是图像处理中的基本操作之一。

边缘提取算法的目标是从图像中提取出物体的轮廓边缘,从而为后续的图像分析、目标检测等任务提供基础。

本文将对常见的图像处理中的边缘提取算法进行综述,并分析各算法的特点和适用场景。

在图像处理中,边缘通常指的是亮度或颜色发生较大变化的地方。

边缘提取算法可以分为基于梯度的方法和基于模板匹配的方法两大类。

基于梯度的方法是常用的边缘提取算法之一。

梯度是指图像中亮度或颜色变化最快的方向。

常见的基于梯度的边缘提取算法包括Sobel算子、Prewitt算子和Canny算子等。

Sobel算子是一种基于离散差分的边缘提取算法。

它通过将原图像与两个差分算子进行卷积运算,分别求得图像在水平和垂直方向的梯度值,然后通过求模运算得到最终的梯度幅值图像。

Sobel算子的优点是计算简单,但容易受到噪声干扰,边缘检测结果不够准确。

Prewitt算子也是一种基于离散差分的边缘提取算法,其原理与Sobel算子类似。

Prewitt算子通过在水平和垂直方向分别扫描图像,求得图像在两个方向的梯度值,进而通过求模运算得到最终的边缘图像。

Prewitt算子与Sobel算子相比,对噪声干扰的鲁棒性更好,但边缘检测精度相对较低。

Canny算子是一种基于多阈值自适应的边缘提取算法。

Canny算法首先通过高斯滤波器对图像进行平滑处理,然后计算图像的梯度幅值和梯度方向,接着应用非极大值抑制和双阈值处理来提取边缘。

Canny 算子的优点是能够提取出较完整、连续的边缘,且对噪声干扰较为鲁棒,是目前应用最广泛的边缘提取算法之一。

除了基于梯度的方法,基于模板匹配的方法也常用于边缘提取。

基于模板匹配的方法通过设计一系列的模板,来寻找与模板匹配程度较高的像素点,从而确定边缘位置。

常见的基于模板匹配的边缘提取算法包括Roberts算子、Laplacian算子和LoG算子等。

医学图像处理中的边缘提取方法使用技巧分析

医学图像处理中的边缘提取方法使用技巧分析

医学图像处理中的边缘提取方法使用技巧分析在医学图像处理中,边缘提取是一项关键技术,它能够帮助医生和研究人员准确地检测和分析图像中的有关病变和解剖结构的边界。

本文将分析医学图像处理中常用的边缘提取方法,并介绍一些使用技巧。

边缘提取是医学图像处理中的重要任务之一,它可以通过检测图像中亮度变化的位置来确定物体的边界,并将其转化为黑白二值图像。

边缘提取不仅可以提供有关病变和解剖结构的定量信息,还可以帮助医生在图像中寻找感兴趣区域,从而辅助诊断和治疗。

在医学图像处理中,常用的边缘提取方法包括基于梯度的方法、基于模板的方法和基于模糊集理论的方法等。

基于梯度的方法是最常用的边缘提取方法之一,它通过计算图像灰度值的梯度来检测边缘。

常用的梯度算法包括Robert算子、Sobel算子和Canny 算子。

Robert算子和Sobel算子是一阶导数算子,通过对图像进行平滑和差分操作来提取边缘。

Canny算子是一种多阶段边缘检测算法,它通过计算梯度幅值和方向来确定边缘像素,并使用非极大值抑制和双阈值处理来提高边缘检测的准确性。

基于模板的方法是另一种常用的边缘提取方法,它通过定义一个特定的模板来检测边缘。

常用的模板包括拉普拉斯算子和高斯拉普拉斯算子。

拉普拉斯算子是二阶导数算子,通过计算图像灰度值的二阶导数来检测边缘。

高斯拉普拉斯算子是拉普拉斯算子和高斯滤波器的结合,它可以提高边缘检测的稳定性和准确性。

基于模糊集理论的方法是一种基于图像强度值和梯度信息的边缘提取方法,它通过将图像属性和边缘属性建模为模糊集来进行边缘检测。

基于模糊集理论的方法能够更好地处理图像中的噪声和模糊信息,并提高边缘检测的准确性。

在使用边缘提取方法时,有一些技巧可以帮助提高边缘检测的效果和准确性。

首先,选择合适的边缘提取方法和参数是至关重要的。

不同的边缘提取方法适用于不同类型的医学图像和应用场景。

根据具体的需求,选择合适的方法和参数可以提高边缘检测的效果。

图像处理中的边缘检测方法

图像处理中的边缘检测方法

图像处理中的边缘检测方法图像处理是指对数字图像进行特定的算法和处理技术,以获得对图像的改善、分析和理解。

其中,边缘检测是图像处理中常用的一种技术,用于识别图像中的边界和轮廓等特征信息。

本文将介绍几种常见的图像处理中的边缘检测方法。

一、基于一阶导数的边缘检测方法基于一阶导数的边缘检测方法是最基础的边缘检测方法之一。

它的原理是通过计算图像中像素灰度值的梯度变化来捕捉边缘的信息。

其中,最常用的一种方法是Sobel算子。

Sobel算子是采用3x3的模板,通过对图像中像素的水平和竖直方向上的灰度梯度进行运算来检测边缘。

通过设置合适的阈值,可以将图像中的边缘提取出来。

二、基于二阶导数的边缘检测方法基于二阶导数的边缘检测方法相比于一阶导数的方法,可以更准确地检测出图像中的边缘信息。

其中,最常用的方法是Laplacian算子。

Laplacian算子通过对图像中像素的二阶导数进行计算,得到图像中的边缘信息。

与一阶导数方法类似,通过设置适当的阈值,可以提取出图像中的边缘。

三、Canny边缘检测方法Canny边缘检测是一种经典的边缘检测方法,它综合了一阶和二阶导数方法的优点,并引入了非最大抑制和阈值选取等步骤,可提高边缘检测的准确性。

Canny边缘检测方法首先对图像进行平滑,然后计算图像中像素的梯度幅值和方向,接着使用非最大抑制方法来细化图像中的边缘,最后通过设定合适的低阈值和高阈值来提取出图像中的边缘。

四、基于模板匹配的边缘检测方法基于模板匹配的边缘检测方法是一种基于图像局部区域特征的检测方法。

它通过定义一些边缘形状的模板,在图像中进行匹配,从而检测出图像中的边缘。

这种方法需要先定义好合适的边缘模板,然后在图像中进行模板匹配,找出与模板匹配程度最高的区域作为边缘。

然而,这种方法对于噪声敏感,且模板的选择和设置较为复杂。

在实际的图像处理中,我们常常根据具体的需求和应用场景选择合适的边缘检测方法。

除了上述介绍的方法外,还有许多其他的边缘检测算法,如Robert算子、Prewitt算子等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

内蒙古科技大学本科毕业论文二〇一二年 4 月摘要本文先介绍了一般边缘检测的步骤和灰度图像形态学的主要操作。

着重讨论基于细胞神经网络的一般灰度图像的边缘提取和图像分割。

先陈述了几种传统算法,并比较了各算法的优劣。

通过例举介绍CNN 基本知识,详细描述了用CNN 提取图像边缘的过程,给出算法流程,阐述算法实现中的关键步骤。

对二值图像和灰度图像,分别采用基于CNN 的算法和传统算子(prewitt、sobel、canny)进行边缘提取,给出提取效果图,定性比较两类算法在性能上的优劣。

来直接的了解灰度图像边缘提取的方法。

关键字:灰度图像,边缘提取,分割,CNN算法,传统算子AbstractThis 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引言 (5)1、灰度图像边缘检测 (6)1.1、边缘检测的步骤 (6)2、几种边缘提取算子 (6)2.1 Roberts算子 (6)2.2、Sobel算子 (7)2.3、Prewitt算子由下式给出 (7)2.4、Canny算子 (8)3.传统算子的优缺点 (8)3.1 Sobel算子 (8)3.2 Robert算子 (8)3.3 Prewitt算子 (8)3.4 Canny算子 (9)4、基于细胞神经网络的灰度图像边缘提取 (9)4.1、CNN 基本知识 (9)4.2、基于CNN 的图像边缘提取 (11)4.3、图像分割的质量评价 (12)4.4、实验分析 (14)结论 (16)参考文献 (17)致谢 (18)图像边缘是图像信息中某种不连续性的表现形式,是图像最基本的特征之一。

在图像处理和模式识别中图像的边缘检测是一个重要的研究课题,也是分析和理解图像的第一步,其检测质量直接影响着后续的图像处理及解译。

传统的图像边缘检测方法主要有基于空间域和空间频率域算法。

基于空间域的典型算法有Robert、Prewitt、Sobel、Canny算子等,图像边缘包含图像的绝大部分有用信息,因而图像识别、匹配等具有很大的研究价值。

灰度图像边缘提取方法综述1、灰度图像边缘检测1.1、边缘检测的步骤1.滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。

需要指出,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折中。

2.增强:增强边缘的基础是确定图像各点邻域强度的变化值。

增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。

边缘增强一般是通过计算梯度幅值来完成的。

3.检测:在图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。

最简单的边缘检测判据是梯度幅值阈值判据。

4.定位:如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。

在边缘检测算法中,前三个步骤用得十分普遍。

这是因为大多数场合下,仅仅需要边缘检测器指出边缘出现在图像某一像素点的附近,而没有必要指出边缘的精确位置或方向。

边缘检测的实质是采用某种算法来提取出图像中对象与背景间的交界线。

我们将边缘定义为图像中灰度发生急剧变化的区域边界。

图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此我们可以用局部图像微分技术来获得边缘检测算子。

经典的边缘检测方法,是通过对原始图像中像素的某小邻域构造边缘检测算子来达到检测边缘这一目的的。

2、几种边缘提取算子2.1 Roberts算子Roberts算子是一种利用局部差分算子寻找边缘算子,它由下式给出:[][]22yfx•=yyxfyxg (2-1)yffxx+()1,1),(+)1(,1+)+,(+•,()其中)f和)1yx,1f分别为4领域的坐标,(+x+y(+xf、),,,1(yf+、)1x(y且是具有整数像素坐标的输入图像;其中的平方根运算使得该处理类似于视觉系统中发生的过程。

Roberts算子是22⨯算子模版。

图1所示的2个卷积被形成了Roberts算子,图像中的每一个点都用这两个核做卷积。

图1 Roberts 算子2.2、Sobel 算子Sobel 算子是一种一阶微分算子,它是利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一等的阈值来取舍。

它由下式给出:2122)(dy dx S += (2-2)Sobel 算子是33⨯算子模版。

图2所示的2个卷积核dy dx ,形成Sobel 算子。

一个核对通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。

2个卷积的最大值作为该店的输出值,运算结果是一幅边缘幅度图像。

图2 Sobel 算子2.3、Prewitt 算子由下式给出2122)(dy dx S p += (2-3)Prewitt 算子是33⨯算子模版。

图3所示的2个卷积形成了Prewitt 算子。

与Sobel 算子的方法一样,图形中的每个点都用这2个核进行卷积,取最大值作为输出值。

Prewitt 算子也产生一幅边缘幅度图像。

图3 Prewitt 算子2.4、Canny 算子Canny 算子是一阶算子,其方法的实质是用1个准高斯函数做平滑运算),(),(y x G y x f f s •=,然后以带方向的一阶微分算子定位导数最大值。

平滑后),(y x f s 的梯度可以使用22⨯的一阶有限差分近似式:[]2),1()1,1(),()1,(),(j i f j i f j i f j i f j i P s s s s +-+++-+≈[]2)1,1()1,(),1(),(),(++-+++-≈j i f j i f j i f j i f j i Q s s s s (2-4) 在这个22⨯正方形内求有限差分的均值,便于在图像中的同一点计算x 和y 的偏导数梯度。

幅值和方向角可用直角坐标到极坐标的坐标转化来计算: 22),(),(),(j i Q j i P j i M += []),(),(arctan ),(j i P j i Q j i =θ (2-5)),(j i M 反映了图像的边缘强度;),(j i θ反映了边缘的方向。

使得),(j i M 取得局部最大方向角),(j i θ,就反映了边缘的方向。

Canny 算子也可用高斯函数的梯度来近似,在理论上很接近4个指数函数的线性组合形成的最佳边缘算子。

在实际编程应用中较为复杂且运算较慢。

3.传统算子的优缺点3.1 Sobel 算子由于Sobel 算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。

美中不足的是,Sobel 算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel 算子没有基于图像灰度进行处理,由于Sobel 算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们可以给出阈值化轮廓提取算法,3.2 Robert 算子根据任一相互垂直方向上的差分都用来估计梯度,Robert 算子采用对角方向相邻像素差。

它定位比较精确,但由于不包括平滑,所以对噪声比较敏感。

3.3 Prewitt 算子该算子与Sobel 算子类似,只是权值有所变化,但两者实现起来功能还是有差距的,据经验得知Sobel 要比Prewitt 更能准确检测图像边缘。

3.4 Canny 算子该算子功能比前面几种都要好,但是它实现起来较为麻烦,Canny 算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny 算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny 分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny 算子还将经过一个非极大值抑制的过程,最后Canny 算子还采用两个阈值来连接边缘。

该算法已在数学上证明当像素点满足正态分布时所求解是最优的。

4、基于细胞神经网络的灰度图像边缘提取4.1、CNN 基本知识细胞神经网络是一个大规模非线性模拟系统,结构如图4所示。

细胞神经网络中,任一细胞仅与邻近细胞相连,彼此之间直接影响;但由于细胞神经网络具有连续时间动力性的传递作用,非邻近细胞之间可以间接相互作用。

定义1 一个二维M ×N 细胞神经网络中处于第i 行第j 列的细胞记为C(i ,j)。

图4 细胞神经网络结构定义2 C(i ,j)的r 邻域(影响域)定义为}1,,},max{|),({),(lN lkM r j l i k l k C j i N r --= 式中:r ——正整数。

细胞神经网络的公式推导如下:状态方程:I l k j i B t v l k j i A t v R dt t dv C j i N l k c ykl j i N l k c xij x xij r r +++-=∑∑∈∈),;,()(),;,()(1)(),(),(),(),( (4-1) 输出方程:)1)(1)((21)(--+=t v t v t v xij xij yij N j M i ≤≤≤≤1,1(4-2) 输入方程:ij uij E v = N j M i ≤≤≤≤1,1 (4-3)约束条件:1)0(≤xij v N j M i ≤≤≤≤1,11≤uij v N j M i ≤≤≤≤1,1 (4-4)参数假设:),;,(),;,(j i l k A l k j i A = N j M i ≤≤≤≤1,100>>x R C (4-5)方程(4-1)~(4-5)中各符号定义如下:)(t v xij 、)(t v yij 和)(t v uij 分别是细胞 C(i ,j)的状态、输出和输入信号(或电压);I 是偏差电流(或阈值);C 和Rx 分别是线性电容和电阻;A(i ,j;k ,l)和B(i ,j;k ,l)分别是反馈算子和控制算子;f 为输出函数,由分段线性函数f(v) =0.5(|v+1| |v 1|)给出,其形状如图5 所示。

相关文档
最新文档