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

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

3天内不再提示

关于FPGA中Sobel的简介与实现

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-07 11:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一。 Sobel简介

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

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

9c1adcec-92eb-11eb-8b86-12bb97331649.png

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

9c661eb4-92eb-11eb-8b86-12bb97331649.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);assign Sobel_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
编辑:lyn

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

    关注

    1664

    文章

    22502

    浏览量

    639139
  • sobel
    +关注

    关注

    0

    文章

    12

    浏览量

    8235

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Altera Agilex FPGA与SoC实现更智能的AI

    的架构演进。该系列相较上一代性能提升高达 2 倍,在内部基准测试位频率突破 650 MHz,还通过优化资源配置,实现了功耗与成本的显著下降。
    的头像 发表于 04-02 14:24 424次阅读

    基于FPGA的磁场定向控制实现方案

    FOC控制算法对传感器采样速率和处理器算力提出了一定的要求,使用 FPGA 实现的 FOC 可以获得更好的实时性,并且更方便进行多路扩展和多路反馈协同。
    的头像 发表于 03-31 15:27 222次阅读
    基于<b class='flag-5'>FPGA</b>的磁场定向控制<b class='flag-5'>实现</b>方案

    使用Aurora 6466b协议实现AMD UltraScale+ FPGA与AMD Versal自适应SoC的对接

    在本博客,我们将介绍使用 Aurora 6466b 协议实现 AMD UltraScale+ FPGA 与 AMD Versal 自适应 SoC 的对接。我们还将涵盖有关 IP 配置、FPG
    的头像 发表于 01-13 14:04 3794次阅读
    使用Aurora 6466b协议<b class='flag-5'>实现</b>AMD UltraScale+ <b class='flag-5'>FPGA</b>与AMD Versal自适应SoC的对接

    【ALINX 教程】FPGA Multiboot 功能实现——基于 ALINX Artix US+ AXAU25 开发板

    系统级设计 阶段的学习者 Multiboot 功能概述 在基础实验FPGA 通常通过 JTAG 下载 bitstream,这种方式掉电后配置就丢失,亦无法实现远程升级。Multiboot 通过将多个配置
    的头像 发表于 01-05 15:41 1636次阅读
    【ALINX 教程】<b class='flag-5'>FPGA</b> Multiboot 功能<b class='flag-5'>实现</b>——基于 ALINX Artix US+ AXAU25 开发板

    如何使用FPGA实现SRIO通信协议

    本例程详细介绍了如何在FPGA实现Serial RapidIO(SRIO)通信协议,并通过Verilog语言进行编程设计。SRIO作为一种高速、低延迟的串行互连技术,在高性能计算和嵌入式系统中广
    的头像 发表于 11-12 14:38 6069次阅读
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>SRIO通信协议

    基于FPGA的肤色检测方案简介

    的白色区域扩大,从而抵消腐蚀操作对图像带来的变化。通过腐蚀和膨胀,可以在几乎不改变图像的前提下消除干扰,提高肤色检测准确度。其效果如下所示: 在FPGA实现腐蚀和膨胀操作最主要的就是按照
    发表于 10-28 07:07

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA
    的头像 发表于 10-22 17:21 4556次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上<b class='flag-5'>实现</b>SRAM的读写测试

    聊聊FPGA的TDC原理

    今天我们不谈高大上的物理学,只聊聊如何在 FPGA ,用一串加法器和 D 触发器,“数清楚时间”——这就是时间数字转换器(TDC)的魅力。
    的头像 发表于 09-02 15:15 2614次阅读
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

    AI狂飙, FPGA会掉队吗? ()

    在上篇,我们介绍了FPGA的前面两个特点:硬件可编程、并行与实时,也列举了这两个特点带来的诸多机会。在本文中,我们将继续介绍另外两个特点,以集齐FPGA的四大特点和生存机会。FPGA
    的头像 发表于 08-08 09:36 1186次阅读
    AI狂飙, <b class='flag-5'>FPGA</b>会掉队吗? (<b class='flag-5'>中</b>)

    FPGA利用DMA IP核实现ADC数据采集

    DMA IP核来实现高效数据传输的步骤,包括创建项目、配置ADC接口、添加和连接DMA IP核、设计控制逻辑、生成比特流、软件开发及系统集成。文章还强调了系统实现不可或缺的ip_repo文件的重要性和作用。
    的头像 发表于 07-29 14:12 5321次阅读

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边
    的头像 发表于 07-10 11:28 4816次阅读
    基于Matlab与<b class='flag-5'>FPGA</b>的双边滤波算法<b class='flag-5'>实现</b>

    基于FPGA的压缩算法加速实现

    本设计,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA
    的头像 发表于 07-10 11:09 2588次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速<b class='flag-5'>实现</b>

    开源FPGA硬件,核心开发者招募......

    01背景简介近期,小眼睛科技联合紫光同创及电子发烧友发起了#拥抱开源!一起来做FPGA开发板活动,活动一经发布,得到了很多开源爱好者的热烈响应,再次感谢大家的支持!为便于活动顺利开展,我们将根据大家
    的头像 发表于 06-20 08:03 1274次阅读
    开源<b class='flag-5'>FPGA</b>硬件,核心开发者招募<b class='flag-5'>中</b>......

    FPGA与高速ADC接口简介

    本文介绍FPGA与高速ADC接口方式和标准以及JESD204与FPGA高速串行接口。
    的头像 发表于 06-12 14:18 3406次阅读
    <b class='flag-5'>FPGA</b>与高速ADC接口<b class='flag-5'>简介</b>

    是否有关于如何通过 I2C 总线上的 uProcessor 或 FPGA 与芯片通信的文档?

    我们正在做一个项目,我们想回读电缆的eMarker芯片。 浏览不同的评估板和数据表,看来我们需要为芯片编译代码。 1. 芯片是否预配置了默认固件? 2. 是否有关于如何通过 I2C 总线
    发表于 05-29 06:13