opencv边缘检测(1)canny

电脑杂谈  发布时间:2020-05-23 15:14:18  来源:网络整理

canny边缘检测原理_canny边缘检测步骤_渗透检测步骤

编辑将在本周再次给我的朋友们一次讲座. 我的上级为我安排的任务是边缘检测. 编者上交了这本书,共有70页. 哇! ! !范围很大,但还有更多要谈的. 我只能说中秋节(╥╯^╰╥).

小编应该先做个笔记. 现在,我可以清楚地写出它,并且在时间到来时将其弄清楚. 以下内容是我阅读了许多博客并自己进行了整合. 至于照片,它们都被偷了.

首先,什么是边缘检测?

图像边缘指的是灰度值突然变化的位置. 在我看来,边缘检测是检测对象的边缘并将其绘制以形成线图. 通常,边缘检测是计算梯度幅度以突出显示灰度强度发生明显变化的点.

一般而言,边缘检测分为3个步骤: 首先是过滤器以去除噪声,然后计算梯度以找到灰度变化剧烈的位置,最后是阈值检测以找到物体的边缘.

Gradient: 本义是一个向量(vector),表示该函数在该点的方向导数在该方向上取最大值,即该函数在该方向(该方向)上的变化最大梯度)在该点上,变化率最大(梯度的模数). 梯度反映了空间变量变化趋势的最大值和方向

梯度方向: 指局部增长最快的方向. 以此类推,负梯度方向是指局部下降最快的方向.

有许多边缘检测方法. 让我们先谈谈常用的.

1.Canny边缘检测

最佳边缘检测算法,先进行平滑,然后找到导数.

(1)高斯平滑滤波器(消除噪声)

图像矩阵I与水平卷积核sobel(x)和垂直卷积核sobel(y)卷积以获得dx和dy. 通常卷积矩阵是奇数.

canny边缘检测步骤_canny边缘检测原理_渗透检测步骤

要处理的图像数据(5 * 5): 卷积核: (3 * 3)

A = [1724 01 0815 H = [8 1 6

23 05 0714 16 3 5 7

04 0613 20 22 4 9 2]

10 12 1921 03

11 1825 02 09]

步骤:

①使操作员绕中心旋转180度

H’= [2 9 4

7 5 3

6 1 8]

②滑动运算符,将每个像素相乘并相加得到一个数字,然后将其放在矩阵的中间.

canny边缘检测原理_渗透检测步骤_canny边缘检测步骤

例如: (2,4)元素值= 1 * 2+ 8 * 9 + 15 * 4+ 7 * 7 + 14 * 5 + 16 * 3 + 13 * 6 + 20 * 1 + 22 * 8 = 575

遇到边界时,值为0.

③重复①②操作获得dx和dy.

(2)计算渐变幅度和方向(找到灰度变化很大的地方)

使用高斯滤波获得卷积矩阵dx和dy,这些卷积矩阵使用以下公式计算:

(3)非最大值抑制(保留最大值,抑制非最大值,不包括非边缘像素,仅保留一些细线)

在对图像执行梯度计算后,仅基于梯度值提取的边缘仍然模糊,因此需要非最大抑制. 解决方案: 使用渐变方向.

算法: ①将当前像素的梯度强度与沿正和负梯度方向的两个像素进行比较.

②如果当前像素的梯度强度与其他两个像素相比最大,则该像素将保留为边缘,否则将其抑制为零.

通常,为了进行更精确的计算,在沿梯度方向的两个相邻像素之间使用线性插值以获得要比较的像素梯度. 以下是一些示例:

渗透检测步骤_canny边缘检测步骤_canny边缘检测原理

如图3-2所示,梯度分为8个方向,即E,NE,N,NW,W,SW,S,SE,其中0表示00〜45o,1表示450〜90o,2代表-900〜-45o,3代表-450〜0o. 像素P的梯度方向为theta,则像素P1和P2的梯度的线性插值为:

其中E,NE,W等表示该方向上的像素值.

因此,用于非最大抑制的伪代码描述如下:

(4)滞后阈值(静止噪声canny边缘检测步骤,更精确地找到边缘. )

通常使用双阈值检测,设置两个阈值,即高阈值TH和低阈值TL. 一般比例为2: 1或3: 1.

如果边缘像素的梯度值高于高阈值,则将其标记为1;否则,将其标记为1. 如果边缘像素的梯度值小于上限阈值且大于下限阈值,则仅在与被接受的TH像素相连时才使用8连通域来确定;如果边缘像素的梯度值小于低阈值,它将被抑制为0. 阈值的选择取决于给定输入图像的内容.

用于双阈值检测的伪代码描述如下:

4个已连接字段和8个已连接字段:

canny边缘检测原理_canny边缘检测步骤_渗透检测步骤

所谓的四连通区域或四邻域是指相应像素位置(即紧邻的位置)的顶部,底部,左侧和右侧. 总共有4个方向,因此称为四连通区域,也称为四邻域.

所谓的八连通区或八邻是指相应位置的上,下,左,右,左上,右上,左下和右下,分别是紧邻的位置和对角线相邻位置. 总共有8个方向,因此称为8个连通区域或8个邻居.

八个连接的定义为:

也就是说canny边缘检测步骤,点(x,y)的8个连通域是指围绕该点的8个点,例如,(x,y)的8个连通区域为(x-1,y -1); (x-1,y); (x-1,y + 1); (x,y-1); (x,y + 1); (x + 1,y-1); (x + 1,y); (x + 1,y + 1).

将点a放入公式中,如果获得的坐标与b相同,则将两个点连接起来.

对于每个值为1的点,如果其八个连接点之一的值为1,则将这两个点归类为对象. 从8连通性的定义公式中可以看出,它是N4个四连通的,右上,右下,左上,左下,左上四个点,即四个连通是八个连通的子集. 也就是说,在图像处理中,四个连接的区域必须是八个连接的.

从上图可以看出,在4连通性的意义上,它可以分为三个独立的区域.

在8位连接的意义上,同一图像只有一个区域.

原始图片:

边缘检测图像:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-219530-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...