基于Sobel算子的数字图像边缘检测
Sobel算子在医学图像边缘检测中的应用研究
(遵义医学院医学信息工程学院肖雪梅)Sobel 算子在医学图像边缘检测中的应用研究随着医学图像设备在临床工作中的应用日益广泛,图像数据增长迅速,进行医学图像的检索成为现代医学领域的一大研究热点。
在医学图像检索中,传统的基于文本的图像检索耗时长,且无法满足现在对大规模图像数据检索的需要,因此提出了将Sobel 算子应用在医学图像边缘检测中。
利用Visual C++工具实现Sobel 算子对医学图像进行边缘信息提取,应用Sobel 算子对医学图像作分割,来突出需要的目标物体,如病灶,能比一般算子更精确。
由于医学图像的特殊性,提出将Sobel 算子应用于医学图像边缘检测中对于后续医学图像检索具有较高的现实意义。
1.引言图像的边缘是图像的最基本特征。
所谓边缘是指其周围像素灰度有跳跃变化的那些像素的集合。
边缘广泛存在于图像中物体与物体之间,物体与背景之间,是图像进行分割所依赖的重要特征。
边缘检测是图像处理中重要组成部分,目的在于精确定位边缘且一定程度上抑制噪声。
医学图像是临床诊断、病例分析治疗的重要依据之一,医学图像边缘检测是根据医学图像的某种相似性特征,将图像划分为若干个互不相交的“连通”区域的过程。
医学图像中,大多数情况下都需要对医学图像进行边缘检测,来突出需要的目标物体,如病灶。
采用Sobel 算子计算医学图像边缘和阈值,在此基础上修改阈值使边缘更加精确,从而对疾病的诊断及治疗起到辅助作用。
本文中对于医学图像采用Sobel 算子进行边缘检测,均在Windows7操作系统下,运用Visual C++来实现。
2.边缘检测边缘检测可以大幅度减少数据量,剔除被认为不相关的信使用。
例如,企业可以在低利用率硬件的虚拟服务器上启动应用程序,或可以在流量较低的交换机上部署网络连接。
借助云计算基础设施,DevOps 团队可以构建他们的应用程序,以便以编程方式部署应用程序,可以告诉应用程序查找低利用率服务器或尽可能靠近数据存储部署,而在传统的IT 环境中,则无法做到这一点。
sobel边缘检测算法参数
Sobel边缘检测算法是一种离散微分算子,主要用于边缘检测。
该算法结合了高斯平滑和微分操作,因此具有强大的抗噪声能力。
在具体应用中,Sobel算子包括两组3*3的矩阵,左边的用于检测垂直边缘,右边的用于检测水平边缘。
在使用Sobel算子进行边缘检测时,可以设置不同的参数来控制算法的灵敏度。
主要的参数包括:
1. 图像深度(ddepth):指输入图像的深度。
2. 求导阶数(dx, dy):0表示这个方向上没有求导,取值为0、1。
3. Sobel算子的大小(ksize):即卷积核的大小,必须为奇数如1、3、5、7,默认为3。
如果ksize = -1,则使用3*3的Scharr算子。
4. 缩放导数的比例常数(scale):默认情况为没有伸缩系数。
5. 图像边界的模式(borderType):默认cv2.BORDER_DEFAULT。
sobel算子边缘检测原理
sobel算子边缘检测原理Sobel算子是一种常用于边缘检测的算子。
它采用了离散微分算子的方法,通过计算像素点与其周围像素点的灰度差异来检测边缘。
边缘是图像中明显的灰度变化的地方,是图像中物体间的分界线。
边缘检测的目的就是找到图像中的这些边缘。
Sobel算子是基于图像的灰度梯度的计算来实现边缘检测的。
在图像中,像素点处的灰度值代表了其周围像素的强度值。
梯度是指一个函数在其中一点的变化率。
在图像处理中,梯度可以指的是图像灰度值的变化率。
Sobel算子通过计算像素点的灰度梯度来检测边缘。
Sobel算子的原理是通过对图像进行两次卷积操作来计算梯度。
一次卷积操作用于在水平方向上计算梯度,另一次卷积操作用于在垂直方向上计算梯度。
对于一个图像中的像素点A,它的灰度梯度可以通过以下公式计算得到:G = abs(Gx) + abs(Gy)其中,G是像素点A的灰度梯度,Gx是像素点A在水平方向上的梯度,Gy是像素点A在垂直方向上的梯度。
Sobel算子采用了以下两个3×3模板来进行卷积操作:水平方向上的Sobel算子模板:[-101-202-101]垂直方向上的Sobel算子模板:[-1-2-1000121]在进行卷积操作时,将模板分别与图像中的像素点进行对应位置上的乘法运算,并将结果相加得到像素点的梯度值。
这样就可以得到整个图像的灰度梯度图像。
通过计算像素点的灰度梯度,我们可以找到图像中的边缘。
边缘通常具有较大的梯度值,因为边缘上存在明显的灰度变化。
因此,我们可以通过设定一个阈值来筛选出图像中的边缘。
Sobel算子在实际应用中有一些优点。
首先,它是一种简单而高效的边缘检测方法。
其次,Sobel算子可以用来检测水平和垂直方向上的边缘,因此可以检测到更多的边缘信息。
此外,Sobel算子还可以通过调整模板的尺寸来适应不同大小图像的边缘检测需求。
然而,Sobel算子也存在一些缺点。
首先,Sobel算子对噪声比较敏感,可能会在噪声处产生较大的边缘响应。
基于Sober算子的图像边缘检测
1 引言图像边缘是一种重要的视觉信息,图像边缘检测是图像处理、图像分析、模式识别、计算机视觉以及人类视觉的基本步骤。
其结果的正确性和可靠性将直接影响到机器视觉系统对客观世界的理解。
实现边缘检测有很多不同的方法,也一直是图像处理中的研究热点,人们期望找到一种抗噪强、定位准、不漏检、不误检的检测算法。
经典的算法中主要用梯度算子,最简单的梯度算子是Roberts算子,比较常用的有Prewitt算子和Sober算子,其中Sober算子效果较好,但是经典Sober算子也存在不足,其边缘具有很强的方向性,只对垂直与水平方向敏感,其他方向不敏感,这就使得那些边缘检测不到j。
对后续的图像处理有很的影响。
本文在此基础提出了一种新的算法,该算子该算法提高了传统Sober检测算子的性能,具有良好的检测精度。
对数字图像{f(x,y)}的每个像素,考察它上下左右邻点灰度的加权差,与之接近的邻点的权大。
据此,定义Sober算子如下:其卷积算子:适当取门限TH,作如下判断:s(i,j)>TH,(i,j)为阶跃状边缘点,{s(i,j)}为边缘图像。
Sober算子很容易在空问上实现,Sober边缘检测器不但产生较好的边缘检测效果,而且受噪声影响也比较小。
当使用大的邻域时,抗噪性能会更好,但这样会增加计算量,并且得出的边缘也会相应变粗。
Sober算子利用像素点上下、左右邻点的灰度加权算法,根据在边缘点处达到极值这一现象进行边缘的检测。
Sober算子对噪声具有平滑作用,提供较为精确的边缘方向信息,是一种较为常用的边缘检测方法。
2 算法设计针对经典Sober算子对边缘具有很强的方向性特点,提出了一种在Sober算子上改进的算法,其主要思想是先对图像进行全局阈值的分割处理,因为分割后的图像是二值图像,此时进行边缘提取,这就可以使各个方向的边缘都可以检测到。
但也可能会丢失原本可直接用Sober算子检测到的边缘。
因此,用处理后所得的图像与用Sober算子直接对原始图像进行边缘检测的图像相加,这一步就得尤为重要。
基于Sobel算子的数字图像边缘检测与FPGA实现
a d i t g a e n aFP n n e r t d i GA h p o i n p r a c i f l x S a t n3 XC3 5 5 X i S 0- PQ2 . e sm u a e e u ti d c t st a h r s n e GA 08Th i l t d r s l n i a e h t e p e e t d FP t c i h p XC3 5 - P S 0 5 Q2 8 c n r n a 3 M Hzs e d F n ly t e e p rm e t 0 a u t1 4 p e . i a l , h x e i n sd n o t n ma e o 0 4 X 1 2 i e s Th wa o e t e a i g f 1 2 0 4 p x l. e
级 . 大 大 增 加 了设 计 过 程 和 最 后 工 程 的 灵 活 性 。 这
S b l . 检 测 算 子 结 合 了边 缘 检 测 和 平滑 算 子 . 其 在 o e: 缘  ̄ 使 嘈杂 的环 境 下 有 良 好 的 检 测 能 力 。因此 本 文 选 择 S b l o e算子 应
一二 、 Biblioteka e边 缘 检 测 原 理 sbl
图 像 边 缘 是 图 像 的 基 本 特 征 之 一 , 包 含 对 人 类 视 觉 它
直 是 一 个 难 题 。虽 然 DSP 备 指 令 流 水 线 特 性 和 很 高 的 具
t he Edge D e ec i i t lI a nd is r alza i t ton ofD gia m ge a t e i ton by FPG A ec t hni que bas d e on be SO lope a o r tr
图像处理中的边缘检测算法研究与性能评估
图像处理中的边缘检测算法研究与性能评估引言:在当今数字图像处理领域,边缘检测一直是一个重要且挑战性的问题。
边缘提取是图像处理中的一项基本操作,对于目标检测、图像分割和图像识别等任务都具有重要意义。
边缘检测的目标是找到图像中明显的灰度跃变区域,以准确地确定物体的边缘位置。
本文将介绍几种常见的图像处理中的边缘检测算法,并对其性能进行评估。
一、经典边缘检测算法1. Sobel算子Sobel算子是一种基于差分的边缘检测算子,它结合了图像梯度的信息。
Sobel算子使用一个3×3的模板对图像进行卷积操作,通过计算水平和垂直方向上的梯度来找到边缘位置。
Sobel算子虽然简单,但在边缘检测中表现良好。
2. Prewitt算子Prewitt算子是另一种基于差分的边缘检测算子,与Sobel 算子类似,它也使用一个3×3的模板对图像进行卷积操作。
该算子通过计算水平和垂直方向上的梯度来检测边缘。
Prewitt 算子在边缘检测中也有较好的性能。
3. Canny边缘检测Canny边缘检测是一种广泛应用的边缘检测算法。
与Sobel 和Prewitt算子相比,Canny算法不仅能够检测边缘,还能够进行边缘细化和抑制不必要的边缘响应。
它通过多阶段的边缘检测过程,包括高斯滤波、计算梯度幅值和方向、非极大值抑制和双阈值处理等步骤,来提取图像中的边缘。
二、边缘检测算法的性能评估1. 准确性评估准确性是评估边缘检测算法好坏的重要指标。
在进行准确性评估时,可以使用一些评价指标,如PR曲线、F值等。
PR 曲线是以检测到的边缘像素为横坐标,以正确的边缘像素为纵坐标绘制的曲线,用于评估算法的召回率和准确率。
F值则是召回率和准确率的综合评价指标,能够综合考虑算法的检测效果。
2. 实时性评估实时性是边缘检测算法是否适用于实际应用的重要因素。
在实时性评估时,可以考虑算法的运行时间,以及算法对硬件资源的要求。
边缘检测算法应尽量满足实时性的要求,并能够在不同硬件平台上高效运行。
图像处理中的边缘检测方法
图像处理中的边缘检测方法边缘检测是图像处理中一项重要任务,它可以通过识别图像中的边缘来揭示物体的轮廓和边界。
在计算机视觉、模式识别和图像分析等领域,边缘检测被广泛应用于目标检测、图像分割、特征提取等方面。
本文将介绍几种常见的图像处理中的边缘检测方法,包括Sobel算子、Canny算子和Laplacian算子。
1. Sobel算子Sobel算子是一种基于差分运算的边缘检测算法,它通过计算图像中像素值的梯度来确定边缘。
Sobel算子采用了一种基于离散卷积的方法,通过在水平和垂直方向上应用两个3×3的卷积核,分别计算出水平和垂直方向的梯度值,最后将两个梯度值进行合并,得到最终的梯度幅值。
Sobel算子在图像边缘检测中表现出色,但它对噪声敏感,需要进行预处理或者使用其他滤波方法。
2. Canny算子Canny算子是一种经典的边缘检测算法,它综合了图像平滑、梯度计算、非极大值抑制和双阈值处理等步骤。
首先,Canny算子使用高斯滤波器对图像进行平滑处理,以减少噪声的影响。
然后,它计算图像中每个像素的梯度幅值和方向,并进行非极大值抑制,保留局部最大值点。
最后,通过设置低阈值和高阈值,将梯度幅值分为强边缘和弱边缘两部分,并通过迭代连接强边缘像素点来得到最终的边缘图像。
3. Laplacian算子Laplacian算子是一种基于二阶微分的边缘检测算法,它通过计算图像中像素值的二阶导数来确定边缘。
Laplacian算子可以通过二阶离散卷积来实现,它对图像中的边缘部分具有一定的抑制作用,并提供了更加精细的边缘信息。
在应用Laplacian算子之前,通常需要对图像进行灰度化处理,以减少计算量和提高边缘检测效果。
与Sobel和Canny 算子相比,Laplacian算子对噪声的影响较小,但容易产生边缘断裂和边缘响应不稳定的问题,因此在实际应用中需要进行适当的后处理。
综上所述,Sobel算子、Canny算子和Laplacian算子是图像处理中常用的边缘检测方法。
图像的边缘检测实验报告
图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
sobel边缘检测原理
sobel边缘检测原理Sobel边缘检测原理Sobel边缘检测是一种常用的图像处理技术,它可以用来检测图像中的边缘。
Sobel算子是一种离散微分算子,它可以将图像中的每个像素点与其周围的像素点进行卷积运算,从而得到该像素点的梯度值。
Sobel算子可以分为水平和垂直两个方向,分别用于检测图像中的水平和垂直边缘。
Sobel算子的原理是基于图像中的灰度变化来检测边缘。
在图像中,边缘处的灰度值会发生明显的变化,而非边缘处的灰度值则相对平滑。
因此,通过计算像素点周围的灰度值差异,可以得到该像素点的梯度值,从而判断该点是否为边缘点。
Sobel算子的计算公式如下:Gx = [-1 0 1; -2 0 2; -1 0 1] * AGy = [-1 -2 -1; 0 0 0; 1 2 1] * A其中,Gx和Gy分别表示水平和垂直方向的梯度值,A表示原始图像的像素矩阵。
在计算过程中,先将原始图像进行灰度化处理,然后对每个像素点进行卷积运算,得到该点的梯度值。
最后,将水平和垂直方向的梯度值进行平方和开方运算,得到该像素点的总梯度值。
Sobel算子的优点是计算简单、速度快,可以有效地检测图像中的边缘。
但是,它也存在一些缺点,比如对噪声比较敏感,容易产生误检测。
因此,在实际应用中,需要结合其他的图像处理技术来进行优化和改进。
总之,Sobel边缘检测是一种简单而有效的图像处理技术,可以用来检测图像中的边缘。
它的原理是基于图像中的灰度变化来进行计算,可以通过卷积运算得到每个像素点的梯度值。
虽然Sobel算子存在一些缺点,但是在实际应用中仍然具有广泛的应用价值。
sobel算子检测边缘 matlab编程
在MATLAB中,使用Sobel算子检测图像边缘的一个基本例子可以如下:matlab复制代码% 读取图像I = imread('your_image.jpg');% 转换为灰度图像I_gray = rgb2gray(I);% 使用Sobel算子进行边缘检测BW = edge(I_gray,'sobel');% 显示原图像和边缘检测后的图像figure,subplot(1,2,1), imshow(I), title('原图像')subplot(1,2,2), imshow(BW), title('Sobel边缘检测后的图像')在上述代码中,首先读取一个图像,然后将其转换为灰度图像。
然后,使用MATLAB 内置的edge函数,指定'sobel'作为方法参数,对灰度图像进行边缘检测。
最后,显示原始图像和经过Sobel边缘检测后的图像。
注意:你需要将'your_image.jpg'替换为你想要处理的图像的文件名。
如果该文件不在MATLAB的当前工作目录中,你需要提供完整的文件路径。
如果你想自己实现Sobel算子而不是使用内置的edge函数,你可以创建一个Sobel算子,然后将其应用于图像。
这是一个基本的例子:matlab复制代码% 读取图像I = imread('your_image.jpg');% 转换为灰度图像I_gray = rgb2gray(I);% 定义Sobel算子Gx = [-101; -202; -101]; % x方向Gy = [121; 000; -1-2-1]; % y方向% 计算图像大小[height, width] = size(I_gray);% 初始化输出图像Ix = zeros(height-2, width-2);Iy = zeros(height-2, width-2);I_edge = zeros(height-2, width-2);% 应用Sobel算子for i = 2:height-1for j = 2:width-1Ix(i-1,j-1) = sum(sum(double(I_gray(i-1:i+1,j-1:j+1)) .* Gx));Iy(i-1,j-1) = sum(sum(double(I_gray(i-1:i+1,j-1:j+1)) .* Gy));% 计算梯度幅度I_edge(i-1,j-1) = sqrt(Ix(i-1,j-1)^2 + Iy(i-1,j-1)^2);endend% 二值化图像BW = I_edge > threshold; % threshold是一个阈值,你需要自己设定% 显示原图像和边缘检测后的图像figure,subplot(1,2,1), imshow(I), title('原图像')subplot(1,2,2), imshow(BW), title('Sobel边缘检测后的图像')注意:在这个例子中,你需要自己设定一个阈值(threshold)来决定哪些像素被视为边缘。
数字图像处理soble进行边沿检测
使用sobel算子进行图像边沿检测一.实验原理Sobel算子是图像处理中的算子之一,主要用作边缘检测。
在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。
在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量.该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
如果用sobel算子检测图像的边缘的话,可以先分别用Sobel 算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。
并且,Sobel算子对于象素的位置的影响做了加权,因此效果更好。
二.实验程序f=imread('jingwu1.jpg');f=rgb2gray(f);f=im2double(f);%使用垂直Sobel算子,自动选择于阈值[VSFAT Threshold]=edge(f,'sobel','vertical'); %边缘探测figure,imshow(f),title('原始图像'); %显示原始图像figure,imshow(VSFAT),title('垂直图像边缘检测');%显示边缘探测图像%使用水平和垂直Sobel算子,自动选择阈值SFST=edge(f,'sobel',Threshold);figure,imshow(SFST),title('水平和垂直图像边缘检测');%显示边缘探测图像%使用指定45度角Sobel算子滤波器,指定阈值s45=[-2 -1 0;-1 0 1;0 1 2];SFST45=imfilter(f,s45,'replicate');SFST45=SFST45>=Threshold;figure,imshow(SFST45),title('45度角图像边缘检测');%最示边缘探测图像s135=[0 1 2;-1 0 1;-2 -1 0];SFST135=imfilter(f,s135,'replicate');SFST135=SFST135>=Threshold;figure,imshow(SFST135),title('135度角图像边缘检测');%最示边缘探测图像三.实验结果本实验分别对三幅图做了sobel算子边缘检测,结果如下:图一:(简单)四.实验分析本实验中使用sobel算子在4个方向进行了图像边缘的检测,有上述程序运行的结果图可以看出,45度角sobel算子和135度角sobel算子生成的边缘检测图像呈现出浮雕的效果,水平和垂直sobel算子检测出的边缘多于单个方向上检测的边缘。
sobel边缘检测算法的用法
sobel边缘检测算法的用法
Sobel边缘检测算法是一种常用的图像处理算法,用于检测图像中的边缘。
它基于图像中像素灰度值的梯度变化来识别边缘。
下面是使用Sobel边缘检测算法的一般步骤:
1.将彩色图像转换为灰度图像:首先,将输入的彩色图像转换为灰度图像。
这可以通过将RGB三个通道的像素值加权平均得到,或者使用其他方法进行灰度化。
2.计算水平和垂直梯度:对灰度图像应用Sobel算子,计算每个像素点的水平和垂直方向上的梯度。
Sobel算子是一个3x3的卷积核,分别对应水平和垂直方向上的梯度计算。
3.计算梯度幅值和方向:根据水平和垂直方向上的梯度计算出每个像素点的梯度幅值和梯度方向。
梯度幅值代表了边缘的强度,而梯度方向表示了边缘的方向。
4.应用阈值处理:根据设定的阈值,将梯度幅值进行二值化处理,以便检测出明显的边缘。
通常,高于高阈值的像素点被认为是边缘,低于低阈值的像素点被认为是非边缘,而介于两个阈值之间的像素点可以根据实际需求进行处理。
5.边缘连接:在二值化后的图像中,将相邻的边缘像素连接起来形成连续的边缘线条。
这可以通过应用一些连接算法,如霍夫变换或者基于邻域关系的像素连接方法来实现。
Sobel边缘检测算法可以帮助我们提取出图像中的边缘信息,常用于计算机视觉、图像处理和模式识别等领域。
基于Sobel算子的图像边缘检测实验分析
摘要 :本文首先介绍 了数 字图像 处理传 统边缘检 测算子 ,然后 详细描述 了其 中具有代表性 的S bl oe 边缘检测算 法 的原理 ,并从模板遵循 的原则和数 学原理两个方 面分析 了S bl oe 算子的模板权值取定 。实验结果表明 ,S bl oe 算子模板 的关键权值取2 ,边缘 较细 ,定位精确 ,提 高了边缘检测精度 。 时 关键词 :图像边缘检 测;Sbl oe算子
计 算机 光盘 软件 与应 用
2 1 第 7期 0 2年 C m u e DS f w r n p l c t o s op t rC o t a ea dA p ia in 工 程 技 术
基于 S bl o e算子的图像边缘检测实验分析
刘洋,张天翔 ,童亚拉 ( 湖北工业大学理 学院 ,武汉 4 0 6 ) 308
中图分类号:T 7 1 文献标识码:A 文章编号:10 - 5921) 7 08- 2 P 5. 1 07 99 ( 2 0- 06 0 0
器 结合 ,卷积运算后 ,图像变得平滑 , 到双边缘并利用零交 得 叉定位 。边 缘检 测效果明显,适合低噪声的 图像 。 5Cn y . a n 算子 :用 高斯 滤波 器平 滑,计算局部梯度和边缘 方 向,采取最大值抑制处理 ,用两个 阈值处理 , 到强边缘与 得 弱边缘 ,将弱边缘集成到强边缘 ,是 目前最好 的传统算子 ,运 算量较大 。 二 、S b 算子 的原理描述 oe I ( )S b l 子 主 要 思想 ~ oe 算 S b 1 子足 基于 一阶微 分的边 缘检测方法,先进行领域 oe 算 加 权 平 均 ,然 后 进 行 一 阶 微 分 处 理 ,检 测 出边 缘 点 。 使 用 的 其 取手 段。 几种 经典 的边 缘检 测算子的 比较 二维模板如 图 2 ,一个模板用于水平方 向差分运算 ,另一个 用 边缘 具有 方向和幅度两个特征 , 沿边缘走 向, 像素值变化 于 垂 直 方 向差 分 运 算 。
基于Sobel算子的图像边缘检测研究_袁春兰
不漏检 、不误检的检测算法 [ 1] 。经典的算法中主要
用梯度算子 , 最简单的梯度算子是 Roberts算子 , 比
较常用的有 Prewitt算子和 Sobel算子 [ 2 -3] , 其中 So-
bel算子效 果较 好 , 但 是经 典 Sobel算子 也存 在不
足 , 其边缘具有很强的 方向性 , 只对垂直 与水平方
经过一系列的分析 与处理的 B图像弥 补了 A 图像的不足 , 但也同时丢 失了 A图像的部分细节 , 所以最后一步加运算所得的最终输出目标的边缘检 测图像就会比 A图像 , 也就是直接用 Sobel算子进 行边缘检测的图像有着更好的检测精度 。 4 仿真结果与分析
本文在 Sobel边缘提 取算法为基础 , 提出了一 种边缘提取的新方法 。下面分别给出了二幅红外图 像和二幅数字图像的仿真实验结果 。
1))-(f(i-1, j+1)+2f(i, j+1)+f(i+1, j+1))
其卷积算子 :
-1 0 1
-1 -2 -1
Δxf= -2 0 2 , Δyf= 0 0 0
-1 0 1
121
适当取 门限 TH, 作如 下判 断 :s(i, j)>TH,
(i, j)为阶跃状边缘点 , {s(i, j)}为边缘图像 。
ii)使用 T分割图像 。 这会产生两组像素 :亮度 值 ≥T的所有像素组成的 G1, 高度值 <T的所有像 素组成的 G2 。
iii)计算 G1 和 G2 范围内的像素的平均亮度值 u1 和 u2 。
iv)计算一个新的阈值 : T=1 /2(u1 +u2 ) v)重复步骤 i)到 iv), 直到连续迭代中 T的差 比预先指定的参数 T0 小为止 。 确定图像最佳的阈值 T后 , 对分割图像进行二 值化 , 得到用 Otsu算法分割图像 [ 7] 。 3.2 形态学的去除孤立像素和闭运算 形态学图像处理是以几何学为基础的 , 它着重 研究图像的几何结构 , 这种结构可以是分析图像的 宏观性质 , 也可以是分析图像的微观性质 。 而研究 图像几何结构的基本思想是利用一个结构元素去探 测图像 , 看是否能够将这个结构元素很好地填放到 图像的内部 , 同时 验证填 放结 构元 素的 方法是 否 有效 。 在上述目标分割的过程中 , 可能存在把背景误
基于Sobel算子的图像边缘检测研究
万方数据 万方数据激光与红外No.12009袁春兰等基于sobel算子的图像边缘检测研究87当成目标的孤立像素,此时用clean去除这种孤立的像素,最后再用闭运算。
闭运算是对图像进行膨胀后作腐蚀,它能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。
对用Otsu算法分割的图像经过形态学处理后再运用Sobel算子进行边缘检测。
3.3图像相加由上述两节内容可知,目前我们得到了两幅红外图像的边缘检测目标图,一幅为直接用Sobel算子对原始图像进行边缘检测的图像,可用A表示。
另外一幅为先经阈值分割再经形态学去除孤立像素和闭运算操作,最后用Sobel算子进行边缘检测图像,可用B表示。
然后,将这两幅红外图像A与B相加,即是最终输出目标的边缘检测图像。
经过一系列的分析与处理的B图像弥补了A图像的不足,但也同时丢失了A图像的部分细节,所以最后一步加运算所得的最终输出目标的边缘检测图像就会比A图像,也就是直接用Sobel算子进行边缘检测的图像有着更好的检测精度。
4仿真结果与分析本文在Sobel边缘提取算法为基础,提出了一种边缘提取的新方法。
下面分别给出了二幅红外图像和二幅数字图像的仿真实验结果。
o,49i,lal0figinal—sobel幽5人Original为原始输入图像,Original—Sobel为直接用Sobel算子检测的边缘图像,new为本文所提出的新算法检测的边缘图像。
由这些仿真结果,可以看出,new(本文检测算法)的边缘检测,既包含了Sobel算子检测的边缘信息,又使得图像的边缘的信息更加准确。
因此,改进后的算子提高了图像的边缘检测性能。
5结论本文分析了Sobel算子边缘检测的不足,并在此基础上提出了一种改进的算法,理论上分析了它的检测精度高于传统的Sobel算子,实验仿真结果证实了它不仅对数字图像而且还对红外图像都有较好的检测精度。
参考文献:[1]章毓晋.图像工程[M].jE京:清华大学出版社,1999.[2]XinfuLi,JiaominLiu.Edgedetectionimageoflowvolt—ageapparatus[c]//IEEEProceedingsoftheSecondInternationalConferenceMachineLearningandCybernetics,Xi’all,2003,2921—2924.[3]HealthA,SarkarS,SanockiT,eta1.Comparisonofedgedetectors:Amethodologyandinitialstudy[J].ComputerVisionandhl,lageUnderstanding,1998,69(1):38—54.[4]何友金,李楠.舰船红外图像边缘检测方法对比研究[J].计算机仿真,2006,4(4):23.[5]刑军.基于Sobel算子数字图像的边缘检测[J].微机发展,2005,15(9):48—52.[6]贺兴华,周嫒媛,等.MATLAB7.X图像处理[M].北京:人民邮电出版社,2006.[7]冈萨雷斯,等.数字图像处理(MATLAB)[M].阮秋琦,等译.北京:电子工业出版社,2005. 万方数据基于Sobel算子的图像边缘检测研究作者:袁春兰, 熊宗龙, 周雪花, 彭小辉, YUAN Chun-lan, XIONG Zong-long, ZHOU Xue-hua, PENG Xiao-hui作者单位:袁春兰,彭小辉,YUAN Chun-lan,PENG Xiao-hui(武汉理工大学,湖北武汉,430070), 熊宗龙,XIONG Zong-long(华中科技大学,湖北武汉,430074;湖北省地震局,湖北武汉,430071), 周雪花,ZHOU Xue-hua(通信指挥学院,湖北武汉,430010)刊名:激光与红外英文刊名:LASER & INFRARED年,卷(期):2009,39(1)被引用次数:8次1.章毓晋图像工程 19992.冈萨雷斯;等;阮秋琦数字图像处理(MATLAB) 20053.贺兴华;周媛媛MATLAB7.X图像处理 20064.刑军基于Sobel算子数字图像的边缘检测[期刊论文]-微机发展 2005(09)5.何友金;李楠舰船红外图像边缘检测方法对比研究[期刊论文]-计算机仿真 2006(04)6.Health A;Sarkar S;Sanocki T Comparison of edge detectors:A methodology and initial study[外文期刊] 1998(01)7.Xinfu Li;Jiao m in Liu Edge detection on arc image of low volt-age apparatus 20031.李海华.齐红敏.万亮亮一种改进的六边形结构的Canny边缘检测算法[期刊论文]-光学仪器 2011(1)2.查笑春.高炜欣.汤楠.程世东基于X射线图像的长输管道焊缝快速边缘检测方法研究[期刊论文]-石油仪器2010(2)3.吴忻生.邓军利用提取边缘线的方法定位条形码[期刊论文]-计算机应用 2010(5)4.黄金国.戴志明.周培源一种改进的基于梯度的图像边缘检测算法[期刊论文]-武汉科技学院学报 2010(3)5.文强.王进.师维基于图像处理的单轨交通PC轨道梁边缘检测[期刊论文]-铁路计算机应用 2010(8)6.张士萍.刘加平边缘检测算子及其在裂缝图像中的应用[期刊论文]-混凝土 2010(6)7.吴术路基于Sobel算子图像边缘检测的MATLAB实现[期刊论文]-电脑知识与技术 2010(19)8.吴德刚.张宇波.曹立波一种改进的模糊边缘检测算法[期刊论文]-激光与红外 2010(12)9.李海华.万亮亮基于六边形结构边缘检测算法的研究[期刊论文]-湖南科技大学学报(自然科学版) 2010(4)10.陈源.张长江水果自动识别的BP神经网络方法[期刊论文]-微型机与应用 2010(22)11.李海华.万亮亮基于六边形结构边缘检测算法的研究[期刊论文]-湖南科技大学学报(自然科学版) 2010(4)本文链接:/Periodical_jgyhw200901023.aspx。
基于Sobel算子的数字图像边缘检测
信号处理综合设计报告综合设计名称:基于Sobel算子的数字图像边缘检测学员:学号:培养类型:技术类年级: 2013级专业:电子工程所属学院:指导教员:职称:教授实验室: 305-507 实验日期:2016.8.23-2016.9.2一、综合设计目的(1)掌握数字信号处理的基本概念、基本理论和基本方法;(2)了解边缘检测的算法和用途,学习利用 Sobel 算子进行边缘检测的程序设计方法; (3)完成图像边缘处理系统的设计和实现,分析处理性能; (4)学会TMS320VC5509A DSP 的程序设计方法。
二、综合设计要求(1)在Matlab 上独立编程实现通过Sobel 算子的边缘检测; (2)读懂DSP-CCS 平台例程,自选图像修改例程实现边缘检测,对比Matlab 仿真和DSP-CCS 平台处理的结果。
(3)完成实验思考题三、详细设计过程1.设计原理分析;Sobel 边缘检测算子:121000121⎡⎤⎢⎥⎢⎥⎢⎥---⎣⎦ 101202101⎡⎤-⎢⎥-⎢⎥⎢⎥-⎣⎦图像中的每个点都用这连个核做卷积,一个核对通常的垂直边缘相应最大,另一个对水平边缘相应最大。
两个卷积的最大值作为该点的输出位(下文我们统称为梯度)。
Prewitt 边缘检测算子:111000111⎡⎤---⎢⎥⎢⎥⎢⎥⎣⎦ 101101101⎡⎤-⎢⎥-⎢⎥⎢⎥-⎣⎦以上两个卷积核形成了Prewitt 算子。
使用方法和Sobel 算子一致,区别是系数不同。
2.设计方案和过程。
总体方案:读取图像建立模板卷积计算得出梯度根据阈值画出边缘二值处理得出阈值(1)选择图像灰度处理这是程序运行的预处理,需要注意的Matlab仿真时,图像选取限制较小,在DSP-CCS平台处理时,注意图像选择要满足例程的空间要求,一般选择80*80尺寸图像。
(2)卷积计算得出梯度把图像与Sobel算子的两个模板分别进行卷积,取卷积后较大值为该点的梯度。
上图显示了在只考虑水平边缘或垂直边缘的情况下的检测效果与实际效果的对比。
基于八方向Sobel算子的边缘检测系统设计
基于八方向Sobel算子的边缘检测系统设计基于八方向Sobel算子的边缘检测系统设计1. 引言图像处理是计算机视觉和图像分析等领域中的一个重要研究方向。
在图像处理中,边缘检测是一项基本任务,它的目标是从图像中提取出物体的边缘信息。
边缘作为物体的分界线,在计算机视觉和图像分析中具有重要的意义。
然而,由于图像中存在着噪声和其他干扰因素,如光照变化等,边缘的检测并不容易。
2. Sobel算子介绍Sobel算子是一种经典的边缘检测算法,其原理是通过计算像素点周围像素灰度值的差异来找出边缘。
Sobel算子将图像中的每个像素点作为中心点,与其周围的像素进行卷积运算,得到水平和垂直方向上的边缘强度。
然后通过对水平和垂直边缘强度的合并,可以得到图像中的边缘信息。
3. 八方向Sobel算子的改进传统的Sobel算子只能检测出水平和垂直方向上的边缘,对于斜方向上的边缘则不够敏感。
为了提高边缘检测的效果,我们对Sobel算子进行了改进,设计了八方向Sobel算子。
八方向Sobel算子可以更好地检测出图像中的斜方向边缘,使得边缘检测的结果更加准确。
4. 边缘检测系统设计基于八方向Sobel算子的边缘检测系统由以下几个模块组成:图像输入模块、预处理模块、八方向Sobel算子模块和边缘检测结果显示模块。
4.1 图像输入模块图像输入模块用于从外部读取图像数据,可以支持不同格式的图像文件,如JPEG、PNG等。
用户可以通过该模块选择并加载需要进行边缘检测的图像。
4.2 预处理模块预处理模块用于对输入图像进行预处理,以便更好地适应边缘检测算法的要求。
主要的预处理操作包括图像灰度化、图像平滑和图像尺寸归一化。
4.3 八方向Sobel算子模块八方向Sobel算子模块是系统的核心模块,它实现了八方向Sobel算子的计算。
该模块通过对图像的每个像素点进行八方向Sobel算子的卷积运算,得到水平和垂直方向上的边缘强度。
4.4 边缘检测结果显示模块边缘检测结果显示模块用于将边缘检测的结果显示出来,以便用户观察和分析。
数字图像处理中的边缘检测算法
数字图像处理中的边缘检测算法数字图像处理是一种将图像转换为数字形式以进行计算机处理的技术,常用于医学图像处理、地质勘探、监控图像处理等领域。
其中边缘检测是数字图像处理中非常重要的一个步骤,它可以提取图像中的边缘信息,进行进一步的处理和分析。
本文将介绍数字图像处理中的边缘检测算法,包括Sobel算子、Prewitt算子、Canny算法等。
一、Sobel算子Sobel算子是一种经典的边缘检测算法,用于检测图像中的边缘信息。
其基本原理是对于图像中的每一个像素点,计算其周围像素点的灰度差异,以此来判断这个像素点处是否有边缘。
Sobel算子的计算公式如下:$G_x = \begin{bmatrix} -1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1\\\end{bmatrix}*I$$G_y = \begin{bmatrix} -1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1\\\end{bmatrix}*I$$G = \sqrt{G_x^2 + G_y^2}$其中,$G_x$和$G_y$分别表示横向和纵向的边缘检测结果,$G$表示综合起来的边缘检测结果,$I$表示输入图像。
可以看到,Sobel算子的核函数是一个$3*3$的矩阵,通过卷积运算将其应用于输入图像中的每一个像素点。
Sobel算子有以下优点:可以检测出粗细不一的边缘;计算简单,运算速度快。
但是也有以下不足:可能会检测出一些假边缘;对于噪声较多的图像效果不佳。
二、Prewitt算子Prewitt算子也是一种常用的边缘检测算法,与Sobel算子类似,也是通过计算像素点周围像素点的灰度差异来检测边缘。
Prewitt算子的核函数为:$G_x = \begin{bmatrix} -1 & 0 & 1\\ -1 & 0 & 1\\ -1 & 0 & 1\\\end{bmatrix}*I$$G_y = \begin{bmatrix} -1 & -1 & -1\\ 0 & 0 & 0\\ 1 & 1 & 1\\\end{bmatrix}*I$$G = \sqrt{G_x^2 + G_y^2}$与Sobel算子相比,Prewitt算子的核函数也是一个$3*3$的矩阵,但是其检测结果更加简单,可能会漏掉一些边缘信息。
八方向sobel算子边缘检测matlab
八方向sobel算子边缘检测matlab八方向 Sobel 算子是一种常用的边缘检测算法,它通过对图像进行梯度计算,提取出边缘信息。
在 Matlab 中,可以使用 Sobel 算子进行边缘检测,具体步骤如下:1. 加载图像:使用 Matlab 内置的图像读取函数,例如`imread`来加载图像。
2. 梯度计算:使用 Matlab 中的`梯度`函数,对图像进行梯度计算。
具体来说,可以使用 Sobel 算子对应的内核进行梯度计算,例如`sobel()`函数可以计算水平方向的梯度,`shearx()`函数可以计算垂直方向的梯度。
3. 边缘检测:使用 Matlab 中的边缘检测函数,例如`borderspace`函数进行边缘检测。
具体来说,可以使用 Sobel 算子对应的内核进行边缘检测,例如`sobel()`函数可以检测水平方向的边缘,`shearx()`函数可以检测垂直方向的边缘。
下面是一个简单的 Matlab 代码示例,演示了如何使用八方向Sobel 算子进行边缘检测:```matlab% 加载图像img = imread("image.png");% 计算梯度grad = sobel(img);% 边缘检测bw = borderspace(grad, 5);% 显示结果figure, imshow(img);figure, imshow(bw);```在以上代码中,首先使用`imread`函数加载图像,然后使用`sobel()`函数计算梯度,最后使用`borderspace`函数进行边缘检测,并将结果显示在屏幕上。
需要注意的是,在使用八方向 Sobel 算子进行边缘检测时,需要对图像进行梯度计算,从而得到图像的梯度信息。
同时,为了进行边缘检测,需要对梯度信息进行膨胀操作,从而扩大差异,找到边缘。
基于Sobel算子的图像边缘检测研究
基于Sobel算子的图像边缘检测研究一、本文概述图像边缘检测是计算机视觉和图像处理领域中的关键任务之一,其目标在于识别并提取图像中物体的轮廓和边界,以便进行进一步的分析和理解。
在众多边缘检测算法中,Sobel算子因其简单、高效和鲁棒性强的特点而备受关注。
本文旨在深入研究基于Sobel算子的图像边缘检测算法,分析其原理、特点、应用以及存在的挑战,并提出相应的改进策略。
本文将介绍Sobel算子的基本原理和计算过程,包括卷积核的构建、图像梯度的计算以及边缘的判定等。
然后,通过对比实验,分析Sobel算子在不同类型图像(如灰度图像、彩色图像、噪声图像等)上的边缘检测效果,评估其性能优劣。
接着,本文将探讨Sobel算子在实际应用中的优缺点,分析其在不同场景下的适用性和限制。
在此基础上,本文还将介绍一些改进Sobel算子的方法,如结合其他边缘检测算法、引入多尺度分析、利用机器学习技术等,以提高边缘检测的准确性和鲁棒性。
本文将对基于Sobel算子的图像边缘检测算法进行总结和展望,指出未来的研究方向和应用前景。
通过本文的研究,希望能够为图像边缘检测领域的发展提供有益的参考和启示。
二、Sobel算子理论基础Sobel算子是一种常用的边缘检测算子,它基于图像亮度的一阶或二阶导数变化来检测边缘。
Sobel算子通过计算图像中每个像素点周围区域的亮度梯度,来确定该像素点是否位于边缘上。
这种方法对于检测图像中的水平和垂直边缘特别有效。
Sobel算子是一种离散微分算子,它结合了高斯平滑和微分求导。
它包含两组3x3的卷积核,分别用于检测水平和垂直方向上的边缘。
当将这两组卷积核与图像进行卷积运算时,可以得到两个输出图像,分别表示水平和垂直方向上的亮度梯度。
在Sobel边缘检测算法中,首先使用高斯滤波器对原始图像进行平滑处理,以减少噪声对边缘检测结果的影响。
然后,使用Sobel算子对平滑后的图像进行卷积运算,得到水平和垂直方向上的亮度梯度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于S o b e l算子的数字图
像边缘检测
The latest revision on November 22, 2020
信号处理综合
设计报告
综合设计名称:基于Sobel算子的数字图像边缘检测
学员:学号:
培养类型:技术类年级: 2013级
专业:电子工程所属学院:
指导教员:职称:教授
实验室: 305-507 实验日期:-2016.9.2
一、综合设计目的
(1)掌握数字信号处理的基本概念、基本理论和基本方法;
(2)了解边缘检测的算法和用途,学习利用 Sobel 算子进行边缘检测的程序设计方法;
(3)完成图像边缘处理系统的设计和实现,分析处理性能;
(4)学会TMS320VC5509A DSP的程序设计方法。
二、综合设计要求
(1)在Matlab上独立编程实现通过Sobel算子的边缘检测;
(2)读懂DSP-CCS平台例程,自选图像修改例程实现边缘检测,对比Matlab 仿真和DSP-CCS平台处理的结果。
(3)完成实验思考题
三、详细设计过程
1.设计原理分析;
Sobel边缘检测算子:
图像中的每个点都用这连个核做卷积,一个核对通常的垂直边缘相应最大,另一个对水平边缘相应最大。
两个卷积的最大值作为该点的输出位(下文我们统称为梯度)。
Prewitt边缘检测算子:
以上两个卷积核形成了Prewitt算子。
使用方法和Sobel算子一致,区别是系数不同。
2.设计方案和过程。
总体方案:
(1)选择图像灰度处理
这是程序运行的预处理,需要注意的Matlab仿真时,图像选取限制较
小,在DSP-CCS平台处理时,注意图像选择要满足例程的空间要求,一般选择80*80尺寸图像。
(2)卷积计算得出梯度
把图像与Sobel算子的两个模板分别进行卷积,取卷积后较大值为该点的梯度。
上图显示了在只考虑水平边缘或垂直边缘的情况下的检测效果与实际效
果的对比。
(3)二值处理计算阈值
把计算出的梯度归一化,然后带入Matlab中的graythresh函数,采用最
大类间方差法获得阈值。
(4)高于阈值设为1,低于阈值设为0。
把二值图像显示出来即为边缘检测的最终结果。
3.改进与创新
(1)八方向Sobel算子
在原有中两个模板的基础上,又增加六个方向的模板,即45°,135°,180°,225°,270°,315°。
这样可以更加有效地检测图像多个方向边缘,使边缘信息更加完整。
(2)抗噪性能分析
通过在原图像中加入不同信噪比的高斯白噪声,观察边缘检测图像的变化,分析差别。
四、调试过程与结果分析
1.传统Sobel算子边缘检测效果展示
注:上图中graythresh算子得出的阈值为0.2784
2.阈值不同时的结果对比。
通过手动调整阈值,我们可以发现,减小阈值,图像中线条增多,增大阈值,线条减少,实际情况中,课根据需要选择合适阈值。
3.Sobel算子与Prewitt算子对比
对于大部分图像,Sobel算子与Prewitt算子得出的结果差别不大。
4.八方向Sobel算子性能分析
实际效果,八方向Sobel算子边缘检测效果提升不明显,但是带来了巨大的内存和空间消耗。
此图显示了八方向Sobel算子的空间占用,实际计算时,需要的时间也比传统Sobel算子要长,考虑到其边缘检测效果提升不明显,后续我们没有采用这种方法。
5.抗噪性能分析
通过给图像加高斯白噪声来测试程序的抗躁性能。
加入信噪比为0.05的高斯白噪声:
几乎不受影响,但是也出现了一些杂点。
加入信噪比为0.5的高斯白噪声:
已经损失了一些信息,左侧后视镜已经看不见了。
加入信噪比为0.9的高斯白噪声:
可以发现右图已经基本上没有信息了,手动调整阈值:
将阈值调整为0.01后,原本的车在地面的阴影,后座都被误判为边界,但是车牌等重要信息被检测出来。
6.DSP-CCS平台实现
仿真时使用的奥迪车图片尺寸较大,无法移植,在CCS平台上,我们使用北大校徽和力帆车标做测试。
北大校徽仿真结果:
CCS平台处理结果:
力帆车标仿真结果:
CCS平台处理结果:
通过两个例子,可以发现CCS平台处理的图像在转弯处,容易出现边缘缺失,可能是由于图片像素太低,精度不足造成的。
五、设计总结和体会
(1)本次实验,以Sobel算子为基础,对数字图像的边缘检测问题进行了一番探究。
实验表明,Sobel算子产生的边缘效果较好,在实际处理中,可根据具体情况采用不同的阈值。
改进的八方向Sobel算子边缘信息更全,但是产生了大量空间和时间消耗,一般不采用。
另外,Sobel算子对噪声具有一定的平滑作用。
(2)选题,分析,仿真,实现,是一般项目进行的主要步骤,好的仿真可以大大缩短实际操作所需要的时间,但是仿真过程中要考虑实际平台的计算能力和存储空间。
(3)本次实验,本组进度进行较快,但是后来看了其他同学的情况后,发现对方做的效果比我们好很多,才激励我们继续研究,找出抗噪性能的分析这一创新点。
启示我们,做研究过程中不要实现一点成绩就沾沾自喜,要保持谦虚,脚踏实地。
六、思考题解答
在CCS平台上,将Sobel算子改为Prewitt算子。
答:Sobel算子核心代码如下:
其中
m_nWork1=x7+x8+x8-x2-x2-x3;
m_nWork2=x3+x6+x6-x4-x4-x7;
if ( m_nWork1<m_nWork2 )
m_nWork1=m_nWork2;
m_nWork2=m_nWork1+x9-x1;
是卷积求梯度的核心代码,根据Prewitt的卷积阵,将此处改为以下代码即可。
m_nWork1=x7+x8-x2-x3;
m_nWork2=x3+x6-x4-x7;
if ( m_nWork1<m_nWork2 )
m_nWork1=m_nWork2;
m_nWork2=m_nWork1+x9-x1;
全部代码见附程序Sobel.c和Prewitt.c
七、参考资料
[1] 陈宇云. 灰度图像的边缘检测研究[D]. 电子科技大学硕士学位论文.2009
[2] 卢洋,张旭秀.图像边缘检测算法的对比分析与研究[J]. 太原科技. 2009,(3):17-18
[3] 韩磊 .MATLAB 在数字图象处理中的应用[J]. 电脑知识与技术.
2008,1(1):29-31
附录
1.transfer_1.m 将彩色图转化为灰度图的小程序,在迁移到CCS平台处理时
用到,Matlab平台仿真的程序中内嵌了这几行代码。
2.Sobel_1.m 传统Sobel算子代码+手动阈值调整功能
3.Sobel_2.m 八方向Sobel
4.Sobel_3.m 将水平和垂直算子单独考虑与都考虑时的对比
5.Prewitt_1.m 传统Prewitt
6.Sobel_prewitt.m Sobel和Prewitt的对比+考虑高斯白噪声后的情况。