前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于FPGA的Sobel算子(一)

基于FPGA的Sobel算子(一)

作者头像
瓜大三哥
发布2018-02-26 10:49:38
1.3K0
发布2018-02-26 10:49:38
举报
文章被收录于专栏:瓜大三哥瓜大三哥

Sobel算子包括x和y方向的差分运算,求取其平方根作为最终取值,一般情况下,在FPGA处理中,考虑到效率和资源占用问题,也可以用绝对值来代替。

将Sobel算子的表达式再次列出如下:

由数学表达式,计算Sobel算子需要首先计算x方向和y方向的微分值gx(x,y)和gy(x,y),之后对两个微分结果分别求平方根或绝对值相加并进行越界处理。在某些场合可能需要用到梯度的方向,因此,需同时计算出梯度方向θ(x,y)。

1.模板计算

由数学表达式可知,这个模板是尺寸固定的3x3模板,我们同事需要连续三行连续三列的9个元素来读模板进行相乘。很明显,我们需要两个行缓存来实现行列对齐。

2.开平方以及反正切计算

在软件中,开方运算和反正切运算均属于浮点运算。而FPGA是不能直接能处理浮点数的,因此如果直接按软件的思路进行浮点计算,首先需要将定点数据转为浮点数,再进行浮点运算,转换完成后再转换成定点。Xilinx和Altera都提供了强大的浮点运算IP核,包括乘法与除法运算、开平方以及正余弦反正切运算等。

Xillinx免费提供Cordic算法核。(使用向量模式将行坐标系转换到极坐标)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 瓜大三哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Sobel算子包括x和y方向的差分运算,求取其平方根作为最终取值,一般情况下,在FPGA处理中,考虑到效率和资源占用问题,也可以用绝对值来代替。
    • 1.模板计算
      • 2.开平方以及反正切计算
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档