专栏首页瓜大三哥基于FPGA的Canny算子设计(一)

基于FPGA的Canny算子设计(一)

Canny算子计算流程:

高斯滤波和Sobel算子已经在前面讲过,所以这里主要讨论非最大值抑制和滞后分割电路设计。

非最大值一直电路设计

非最大值抑制主要是对Sobel运算的计算结果进行开窗,在当前像素的3x3邻域找到梯度方向上的最大值,若当前像素为整个方向上的最大值,则将该像素点归为潜在的边缘点。否则,直接置为非边缘点。

我们首先要明白当前像素的梯度值位于哪一个象限,假定其位于第一象限,则有

假定该点计算结果为result,则有

不妨再列出第二象限的计算公式

设计的难点在于梯度方向上两个潜在极大值的插值运算f算子。有两点值得我们注意:

1) f算子中包含除法,这是在FPGA中不容易处理的。

2) 前两个象限的除法运算的分子和分母是颠倒的,这是不容易设计的。

所以就需要进行算法的等效转换,首先想到的就是将除法转换为乘法运算,这个是比较容易实现的,以第一象限公式为例,两边同时乘以x,则有

对于第二象限,两边同时乘以y,则有

不等式右边第一项系数为当前x与y方向梯度值的较小值,第二项系数为当前x与y方向梯度的较大值与较小值之差,不等式左边系数为当前x与y方向梯度值的较大值。因此,将公式变换如下:

上式中,Mmax代表当前x与y方向梯度值的较大值,Mmin代表当前x与y方向梯度值的较小值。C0,C1,C2,C3,则分别代表4个插值元素。对于8个不同的象限,插值元素的索引号如下表所示:

Index of C0

Index of C1

Index of C2

Index of C3

第1,5象限

2

5

6

3

第2,6象限

2

1

6

7

第3,7象限

0

1

8

7

第4,8象限

0

3

8

5

这样,就可以实现4个主象限的计算一致性,同时将转换为FPGA所擅长的乘法和加法运算。

在查表得到插值元素时,需要知道当前的象限信息,得到象限信息的最简单办法就是通过查询x与y方向梯度值的符号。同时,需要得到两个值的比较关系。需要注意的是,我们需要Sobel运算结果的x与y方向的输出,以及模值输出,实际上并不需要方向计算。

第一阶段的计算电路如图所示:

首先将Sobel的x和y方向的计算结果通过Cordic模块输出两个值的绝对值的较大值Max和较小值Min,以及输入坐标的象限信息Quadrant_info。接着为了得到当前像素的8个插值元素,即当前窗口,我们需要将上面三个数据及Sobel的模值结果Mudule送入win_buf得到窗口缓存。我们需要的是当前窗口的9个元素Mudule(8:0),以及上面三个数据的当前值Max(4),Min(4),Quadrant_info(4)。

第二阶段的计算电路如图所示:

第二阶段的计算将象限信息和当前窗口像素送入查找表,由查找表电路得到C0,C1,C2,C3输出。然后在此基础上做f算子,得到的结果与中心窗口值与Max的乘积进行比较。最后,在比较的结果上进行分割。

本文分享自微信公众号 - 瓜大三哥(xiguazai_tortoise),作者:xiguazaitortoise

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于FPGA的Sobel算子(三)

    基于FPGA的Sobel算子(三) 之Cordic坐标系转换电路 1.前期预处理:完成坐标象限转换。 2.完成n次迭代工作:采用菊花链式结构设计。 3.后期处理...

    瓜大三哥
  • FPGA block RAM和distributed RAM区别

    区别之1 bram 的输出需要时钟,dram在给出地址后既可输出数据。 区别之2 dram使用根灵活方便些 区别之3 bram有较大的存储空间,dram浪费LU...

    瓜大三哥
  • Slice Description

    这些单元可以用来提供逻辑、算术和 ROM 功能。此外,有些 Slice 还支持两个附加功能:使用分布式 RAM 存储数据和使用 32 位寄存器移位数据。支持这些...

    瓜大三哥
  • 高效沟通的秘籍-沟通视窗

    沟通视窗,原名乔哈里视窗,是一种关于沟通的技巧和理论, 也被称为“自我意识的发现-反馈模型”。沟通视窗可分为隐私象限、盲点象限、潜能象限和公开象限四大区域,涵盖...

    架构师精进
  • 七种常见的数据分析法之:象限法

    是的,一个初中时就学会的坐标轴,X轴从左到右是点击率的高低,Y轴从下到上是转化率的高低,形成了4个象限,这就是我们要说的象限分析法。

    数据猿
  • 基于FPGA的Sobel算子(三)

    基于FPGA的Sobel算子(三) 之Cordic坐标系转换电路 1.前期预处理:完成坐标象限转换。 2.完成n次迭代工作:采用菊花链式结构设计。 3.后期处理...

    瓜大三哥
  • 作为初级管理者必会的方法论和分析法

    静儿
  • 2.3.9、Google Analytics高级应用——波士顿矩阵分析方法

    波士顿矩阵分析方法是市场营销领域非常常用的一种方法,也就做矩阵分析方法或四象限分析方法。

    GA小站
  • 2017最佳数据科学平台

    我们对比了Gartner2017年数据科学平台魔力象限和它2016年的版本在“领头羊”(Leaders)和“黑马”(Challengers)中的明显改变,其中包...

    华章科技
  • 大数据下的帝都魔都的爱恨情仇

    作者:茅明睿 世界互联网大会举办期间,由DF数据竞赛平台(DataFountain,DF)承办的形式多样的“双创热土”生态对接会暨“共创大数据生态 共赢数字经...

    钱塘数据

扫码关注云+社区

领取腾讯云代金券