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
    +关注

    关注

    1625

    文章

    21650

    浏览量

    601497
  • sobel
    +关注

    关注

    0

    文章

    12

    浏览量

    7891

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

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

收藏 人收藏

    评论

    相关推荐

    FPGA浮点四则运算的实现过程

    由于定点的四则运算比较简单,如加减法只要注意符号扩展,小数点对齐等问题即可。在本文中,运用在前一节描述的自定义浮点格式FPGA数的表示方法(下),完成浮点四则运算的实现过程 1.自
    的头像 发表于 11-16 11:19 114次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>中</b>浮点四则运算的<b class='flag-5'>实现</b>过程

    基于 DSP5509 进行数字图像处理 Sobel 算子边缘检测的硬件连接电路图

    以下是基于 DSP5509 进行数字图像处理 Sobel 算子边缘检测的硬件设计方案: 一、总体架构 图像采集:使用合适的图像传感器,如 CMOS 传感器,通过相应的接口(如 SPI、I2C 等
    发表于 09-25 15:25

    如何在FPGA实现按键消抖

    FPGA(现场可编程门阵列)实现按键消抖是一个重要的设计环节,特别是在处理用户输入时,由于物理按键的机械特性和电气特性,按键在按下和释放的瞬间会产生抖动现象,这种抖动可能导致系统错误地识别为多次
    的头像 发表于 08-19 18:15 1334次阅读

    优化 FPGA HLS 设计

    减少错误并更容易调试。然而,经常出现的问题是性能权衡。在高度复杂的 FPGA 设计实现高性能需要手动优化 RTL 代码,而这对于HLS开发环境生成的 RTL 代码来说是不可能的。然而,存在一些解决方案
    发表于 08-16 19:56

    如何在FPGA实现随机数发生器

    分享如何在Xilinx Breadboardable Spartan-7 FPGA, CMOD S7实现4位伪随机数发生器(PRNGs)。
    的头像 发表于 08-06 11:20 570次阅读
    如何在<b class='flag-5'>FPGA</b><b class='flag-5'>中</b><b class='flag-5'>实现</b>随机数发生器

    如何在FPGA实现状态机

    FPGA(现场可编程门阵列)实现状态机是一种常见的做法,用于控制复杂的数字系统行为。状态机能够根据当前的输入和系统状态,决定下一步的动作和新的状态。这里,我们将详细探讨如何在FPGA
    的头像 发表于 07-18 15:57 461次阅读

    FPGA设计经验之图像处理

    系列:基于 FPGA 的图像边缘检测系统设计(sobel算法) FPGA设计 Verilog HDL实现基本的图像滤波处理仿真 需
    发表于 06-12 16:26

    基于FPGA的实时边缘检测系统设计,Sobel图像边缘检测,FPGA图像处理

    运行时, FPGA 并行运算平台首先完成对摄像头的初始化和寄存器配置,配置完成之后读取实时的图像数据存入 SDRAM 存储器,在 FPGA 芯片内部并行实现图像处理算法,对从 SDR
    发表于 05-24 07:45

    算法系列:基于 FPGA 的图像边缘检测系统设计(sobel算法)

    post_y_data_r<=16\'hffff; end 六、图片的显示 本来是想用 VGA 来显示图片的,由于条件的限制没能实现,最终只能将处理完的数据输出保存在 .txt 文件,然后借助网页进行
    发表于 03-26 16:40

    请问MCSDK关于过流保护的设置是怎么实现的呢?

    在ihm07m1电机功率板上,没有找到关于过流保护触发定时器BKIN的硬件电路啊? 请问MCSDK关于过流保护的设置是怎么实现的呢?
    发表于 03-22 08:21

    FPGA实现原理

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种特殊的集成电路,其内部结构由大量的可配置逻辑块和互连线组成。FPGA可以通过编程来实现各种数字系统功能
    发表于 01-26 10:03

    关于FPGA的开源项目介绍

    Hello,大家好,之前给大家分享了大约一百多个关于FPGA的开源项目,涉及PCIe、网络、RISC-V、视频编码等等,这次给大家带来的是不枯燥的娱乐项目,主要偏向老的游戏内核使用FPGA进行硬解,涉及的内核数不胜数,主要目标是
    的头像 发表于 01-10 10:54 1326次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>FPGA</b>的开源项目介绍

    IIC总线的FPGA实现说明

    DE2_TV,有关于寄存器的配置的部分,采用的方法是通过IIC的功能,这里对IIC总线的FPGA实现做个说明。
    的头像 发表于 01-05 10:16 995次阅读
    IIC总线的<b class='flag-5'>FPGA</b><b class='flag-5'>实现</b>说明

    如何能够实现通用FPGA问题?

    FPGA 是一种伪通用计算加速器,与 GPGPU(通用 GPU)类似,FPGA 可以很好地卸载特定类型的计算。从编程角度上讲,FPGA 比 CPU 更难,但从工作负载角度上讲 FPGA
    发表于 12-29 10:29 410次阅读

    国产FPGA简介

    电子、AI、数据中心。 安路科技(上海) 核心技术:全流程TD软件系统 主要产品:高端PHOENIX(凤凰)、端EAGLE(猎鹰)、低端ELF(精灵)系列FPGA。 应用方案:LED显示屏、工业自动化
    发表于 11-20 16:20