1. > 生活百科 >

sobel算子(sobel算子对应的模板形式)

本文目录一览:

sobel算子对应的模板形式有哪两种

Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。

Sobel算子的核心公式

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经纵向及横向边缘检测的图像,其公式如下:

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

然后可用以下公式计算梯度方向。

在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。

Sobel算子是什么?

C++Builder下的sobel算子的程序如下:

/// summary

/// 按 Sobel 算子进行边缘检测

/// /summary

/// param name= "b " 位图流 /param

/// returns /returns

public Bitmap Sobel(Bitmap b)

{

Matrix3x3 m = new Matrix3x3();

// -1 -2 -1

// 0 0 0

// 1 2 1

m.Init(0);

m.TopLeft = m.TopRight = -1;

m.BottomLeft = m.BottomRight = 1;

m.TopMid = -2;

m.BottomMid = 2;

Bitmap b1 = m.Convolute((Bitmap)b.Clone());

// -1 0 1

// -2 0 2

// -1 0 1

m.Init(0);

m.TopLeft = m.BottomLeft = -1;

m.TopRight = m.BottomRight = 1;

m.MidLeft = -2;

m.MidRight = 2;

Bitmap b2 = m.Convolute((Bitmap)b.Clone());

// 0 1 2

// -1 0 1

// -2 -1 0

m.Init(0);

m.TopMid = m.MidRight = 1;

m.MidLeft = m.BottomMid = -1;

m.TopRight = 2;

m.BottomLeft = -2;

Bitmap b3 = m.Convolute((Bitmap)b.Clone());

// -2 -1 0

// -1 0 1

// 0 1 2

m.Init(0);

m.TopMid = m.MidLeft = -1;

m.MidRight = m.BottomMid = 1;

m.TopLeft = -2;

m.BottomRight = 2;

Bitmap b4 = m.Convolute((Bitmap)b.Clone());

// 梯度运算

b = Gradient(Gradient(b1, b2), Gradient(b3, b4));

b1.Dispose(); b2.Dispose(); b3.Dispose(); b4.Dispose();

return b;

} // end of Sobel

sobel边缘检测优缺点与canny算子的优缺点?

一、sobel边缘检测:

1、sobel边缘检测优点:输出图像(数组)的元素通常具有更大的绝对数值。

2、sobel边缘检测缺点:由于边缘是位置的标志,对灰度的变化不敏感。

二、canny算子:

1、canny算子优点:法能够尽可能多地标识出图像中的实际边缘;标识出的边缘要与实际图像中的实际边缘尽可能接近。

2、canny算子缺点:图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘。

扩展资料:

Sobel边缘检测的核心在于像素矩阵的卷积,卷积对于数字图像处理非常重要,很多图像处理算法都是做卷积来实现的。

卷积运算的本质就是对制定的图像区域的像素值进行加权求和的过程,其计算过程为图像区域中的每个像素值分别与卷积模板的每个元素对应相乘,将卷积的结果作求和运算,运算到的和就是卷积运算的结果。

参考资料来源:

百度百科-sobel

百度百科-Canny算子

Sobel算子的由来

对于已经写入数字图像处理及机器视觉教科书多年的Sobel算子,谁也没曾追问和关心过它的发明背景和历史。最近,给学生上“光电图像处理”课,想介绍一下该算子的来历,查了很多文献,就是找不到原始文献。Google学术里搜索,信息很多,却不一致。有标注为期刊论文的,也有标注出版物析出的,出版时间也不一致(冈萨雷斯《Digital Image Processing》教材标注的时间为1970年)。

这个看似简单,但领域内科研、开发人员沿用了几十年的边缘检测算子究竟如何产生的?偶然发现了一个帖子,该算子的提出者Irwin Sobel在算子产生多年后于该帖中详细谈到它的由来和定义。

原来,这个著名的Sobel边缘算子,当年作者并没有公开发表过论文,仅仅是在一次博士生课题讨论会(1968)上提出("A 3x3 Isotropic Gradient Operator for Image Processing"),后在1973年出版的一本专著("Pattern Classification and Scene Analysis")的脚注里作为注释出现和公开的。

Sobel算子的介绍

计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息