0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Sobel简介及代码实现

FPGA之家 来源:FPGA之旅 作者:风花雪月 2022-08-09 12:35 次阅读

一.Sobel简介

  • 一句话可以概况为,分别求水平与竖直梯度,然后求平方和再开方(近似的话就直接求绝对值之和),最后与设定的阈值进行比较,大于的话就赋值为0,小于的话就赋值为255。

  • x方向梯度dx的求法:3*3的图像矩阵与下面的矩阵在对应位置相乘然后相加

    fb0ac9b2-179a-11ed-ba43-dac502259ad0.png

  • y方向梯度dy的求法:同上

    fb1a2100-179a-11ed-ba43-dac502259ad0.png

二.代码实现

这里采用近似计算G = |dx| + |dy|, 正负号分开计算,然后用大的数减去小的数
reg[10:0]  Sobel_px ,Sobel_nx;reg[10:0]  Sobel_py ,Sobel_ny;
wire[10:0]  Sobel_x;wire[10:0]  Sobel_y;
wire[7:0]  Sobel_data;
//x方向的梯度assign Sobel_x = (Sobel_px > Sobel_nx) ? (Sobel_px - Sobel_nx) : (Sobel_nx - Sobel_px);//y方向的梯度assign Sobel_y = (Sobel_py > Sobel_ny) ? (Sobel_py - Sobel_ny) : (Sobel_ny - Sobel_py);assignSobel_data=(Sobel_x+Sobel_y>'d135)?'d0:'d255;


always@(posedge clk_9M or negedge rst)begin  if(rst == 1'b0)    begin      Sobel_px <= 'd0;      Sobel_nx <= 'd0;    end  else if(cur_x >= 'd100 && cur_x <= 'd199 && cur_y >= 'd50)    begin      Sobel_nx <= data_line_11 + data_line_21 + data_line_21 + data_line_31;      Sobel_px <= data_line_13 + data_line_23 + data_line_23 + data_line_33;    end  else    begin    Sobel_nx <= 'd0;    Sobel_px <= 'd0;    endend

always@(posedge clk_9M or negedge rst)begin  if(rst == 1'b0)    begin      Sobel_py <= 'd0;      Sobel_ny <= 'd0;    end  else if(cur_x >= 'd100 && cur_x <= 'd199 && cur_y >= 'd50)    begin      Sobel_py <= data_line_11 + data_line_12 + data_line_12 + data_line_13;      Sobel_ny <= data_line_31 + data_line_32 + data_line_32+ data_line_33;    end  else    begin      Sobel_ny <=  'd0;      Sobel_py <=  'd0;    endend

审核编辑:汤梓红


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21650

    浏览量

    601497
  • sobel
    +关注

    关注

    0

    文章

    12

    浏览量

    7891

原文标题:FPGA实现Sobel边缘检测

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的Sobel边缘检测工作原理

    Sobel 边缘检测的工作原理是检测图像在水平和垂直方向上的梯度变化。为此,将两个卷积滤波器应用于原始图像,然后组合这些卷积滤波器的结果以确定梯度的大小。
    发表于 12-14 11:34 1390次阅读

    基于FPGA的Sobel边缘检测的实现

    我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测、中值滤波、Canny算子边缘检测、腐蚀和膨胀等。那么这篇文章我们将来实现基于FPGA的Sobel边缘检测。图像
    发表于 08-29 15:41

    基于FPGA的边缘检测和Sobel算法

    转帖摘要: 针对嵌入式软件无法满足数字图像实时处理速度问题,提出用硬件加速器的思想,通过FPGA实现Sobel边缘检测算法。通过乒乓操作、并行处理数据和流水线设计,大大提高算法的处理速度。采用模块
    发表于 11-29 08:57

    从zynq_base_trd_14_4调试“sobel_cmd_linux”时出错

    在我尝试从zynq_base_trd_14_4调试“sobel_cmd”时,作为“远程ARM Linux应用程序”我遇到了错误:描述资源路径位置Typemake:***没有规则来制作
    发表于 09-03 08:04

    【正点原子FPGA连载】第七章OV5640摄像头Sobel边缘检测-领航者ZYNQ之HLS 开发指南

    边缘检测实验,来学习如何使用Vivado HLS工具生成实现Sobel边缘检测算法的IP核,以及在Vivado中对综合结果进行验证的流程。本章包括以下几个部分:77.1Sobel边缘检测简介
    发表于 10-13 17:05

    【米尔MYS-8MMX开发板免费试用】-VI.Sobel边缘检测(ZMJ)

    【米尔MYS-8MMX开发板】-VI.Sobel边缘检测(ZMJ)1.功能简介本案例使用 GStreamer API 通过 ARM Cotrex-A53 从 USB 摄像头获取 MJPEG 格式视频
    发表于 09-10 15:41

    时间戳的简介实现

    时间戳时间戳简介时间戳的实现时间戳的初始化时间戳简介简而言之,就是在代码中插下标注,在代码运行后通过算开始节点TimeStart和结束节点T
    发表于 02-28 06:23

    迅为iTOP-RK3568开发板Sobel 算子边缘检测

    本小节代码在配套资料“iTOP-3568 开发板\\\\03_【iTOP-RK3568 开发板】指南教程 \\\\04_OpenCV 开发配套资料\\\\32”目录下,如下图所示: Sobel
    发表于 09-18 10:27

    sobel_FPGA l边缘检测

    sobel_FPGA l边缘检测.源代码
    发表于 05-03 16:42 9次下载

    sobel函数用法示例

    《OpenCV3编程入门》书本配套源代码:sobel函数用法示例
    发表于 06-06 15:20 2次下载

    基于CORDIC的高速Sobel算法实现

    为提高图像边缘检测的处理速度,提出一种基于CORDIC的高速Sobel算法实现
    的头像 发表于 10-05 09:54 3534次阅读
    基于CORDIC的高速<b class='flag-5'>Sobel</b>算法<b class='flag-5'>实现</b>

    浅述Sobel算子在HLS上的实现教程

    Sobel 原理介绍 索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度
    的头像 发表于 07-23 14:53 2227次阅读
    浅述<b class='flag-5'>Sobel</b>算子在HLS上的<b class='flag-5'>实现</b>教程

    Sobel算子原理介绍与实现方法

    索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量Sobel 卷积因子为:
    的头像 发表于 07-21 17:27 1.3w次阅读

    SpinalHDL里如何实现Sobel边缘检测

    书接上文,趁着今天休假,采用SpinalHDL做一个小的demo,看看在SpinalHDL里如何优雅的实现Sobel边缘检测。
    的头像 发表于 08-26 08:59 1253次阅读

    图像锐化的Sobel、Laplacian算子基础知识介绍

    Sobel 算子是一种用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导
    的头像 发表于 09-13 09:52 1245次阅读
    图像锐化的<b class='flag-5'>Sobel</b>、Laplacian算子基础知识介绍