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

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

3天内不再提示

如何在中FPGA实现Sobel边缘检测

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-09 17:27 次阅读

一。 Sobel简介

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

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

3a0d13b0-990f-11eb-8b86-12bb97331649.png

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

3a4152f6-990f-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
    +关注

    关注

    1603

    文章

    21329

    浏览量

    593299
  • sobel
    +关注

    关注

    0

    文章

    12

    浏览量

    7827

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

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

收藏 人收藏

    评论

    相关推荐

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

    努力不断完善。本次只是简单对一幅图像进行边缘检测,我的后续目标是实现图片的实时处理,这又需要学习很多东西了,SDRAM、摄像头驱动等等等,越学习越发现自己知道的实在是太少了,永远在路上,学无止境。希望我的分享能够帮助一些和我一样
    发表于 03-26 16:40

    OpenCV边缘检测算子Laplace、LoG详解

    一阶导数算子(例如 Sobel 算子)通过对图像求导来确定图像的边缘,数值绝对值较高的点对应了图像的边缘。如果继续求二阶导,原先数值绝对值较高的点对应了过零点。因此,也可以通过找到二阶导数的过零点来
    的头像 发表于 12-21 16:34 414次阅读
    OpenCV<b class='flag-5'>边缘</b><b class='flag-5'>检测</b>算子Laplace、LoG详解

    国产嵌入式实验箱操作教程_创龙教仪:5-12 边缘检测(LCD显示)

    一、实验目的 学习Canny边缘检测的原理,掌握图像的读取方法,并实现在LCD上显示边缘检测前后的图像。 二、实验原理
    发表于 12-14 14:09

    Canny双阈值边缘检测和弱边缘连接详解

    在上一篇FPGA图像处理--Canny边缘检测(一)里介绍了Canny边缘检测的NMS计算,这里就介绍一下双阈值
    的头像 发表于 11-18 17:07 1014次阅读

    FPGA图像处理之Canny边缘检测

    边缘检测算法里面Sobel是比较简单的一个算法,但是其检测出来的边缘往往是比较粗的,效果不是很好,因为我们最理想的
    的头像 发表于 11-17 09:10 795次阅读
    <b class='flag-5'>FPGA</b>图像处理之Canny<b class='flag-5'>边缘</b><b class='flag-5'>检测</b>

    【紫光同创PGL50H】小眼睛科技盘古50K开发板试用体验之图像Sobel边缘检测

    在紫光PGL50H上简单实现图像Sobel边缘检测。 01 软硬件平台 软件平台:PDS_2022.1 硬件平台:小眼睛科技盘古50K开发板 02
    发表于 10-12 20:14

    openCV边缘检测原理是什么?

    openCV是通过什么原理来实现边缘检测
    发表于 10-10 06:21

    迅为RK3568开发板Scharr滤波器算子边缘检测

    scharrx = cv2.Scharr(img,cv2.CV_64F,1,0)# 使用 Sobel 算子进行边缘检测,数据类型设置为 cv2.CV_64F,只算 x 5 方向梯度,Sobe
    发表于 10-09 11:03

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

    (索贝尔)算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。 索贝尔算子把图像每个像素的上下左右四领域的灰度值加权差,在边缘
    发表于 09-18 10:27

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

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

    FPGA相机边缘检测开源分享

    电子发烧友网站提供《FPGA相机边缘检测开源分享.zip》资料免费下载
    发表于 07-10 09:39 0次下载
    <b class='flag-5'>FPGA</b>相机<b class='flag-5'>边缘</b><b class='flag-5'>检测</b>开源分享

    基于FPGA的实时图像边缘检测系统设计(附代码)

    FPGA实现图像的边缘检测模块及FPGA驱动VGA接口实现图像
    发表于 06-21 18:47

    何在实时边缘v2.5编译imx8mp-ddr4-evk的图像?

    何在实时边缘 v2.5 编译 imx8mp-ddr4-evk 的图像?能不能直接执行命令:DISTRO=nxp-real-time-edge MACHINE=imx8mp-ddr4-evk source real-time-
    发表于 05-29 06:53

    何在OpenCV中使用基于深度学习的边缘检测

    在这篇文章中,我们将学习如何在OpenCV中使用基于深度学习的边缘检测,它比目前流行的canny边缘检测器更精确。
    的头像 发表于 05-19 09:52 1679次阅读
    如<b class='flag-5'>何在</b>OpenCV中使用基于深度学习的<b class='flag-5'>边缘</b><b class='flag-5'>检测</b>?

    何在OpenCV中使用基于深度学习的边缘检测

    边缘检测是计算机视觉中一个非常古老的问题,它涉及到检测图像中的边缘来确定目标的边界,从而分离感兴趣的目标。
    的头像 发表于 05-18 10:10 625次阅读
    如<b class='flag-5'>何在</b>OpenCV中使用基于深度学习的<b class='flag-5'>边缘</b><b class='flag-5'>检测</b>?