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

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

3天内不再提示

Canny图像算法仿真验证原理与实现

FPGA自习室 来源:FPGA自习室 作者:FPGA自习室 2021-10-15 09:10 次阅读

先读为快,以结果为导向,本期介绍Canny图像算法仿真验证,后续将介绍canny算法原理与实现,欢迎持续关注,公众号设置星标,不错过每一次推送~

一、简要说明

1.1 算法流程

Canny边缘检测是一种非常流行的边缘检测算法,是John Canny在1986年提出的。它是一个多阶段的算法,即由多个步骤构成:图像降噪、计算图像梯度、非极大值抑制。

第一步,图像降噪。我们知道梯度算子可以用于增强图像,本质上是通过增强边缘轮廓来实现的,也就是说是可以检测到边缘的。但是,它们受噪声的影响都很大。那么,我们第一步就是想到要先去除噪声,因为噪声就是灰度变化很大的地方,所以容易被识别为伪边缘。

第二步,计算图像梯度,得到可能边缘。我们在前面的关于《图像梯度》文章中有所介绍,计算图像梯度能够得到图像的边缘,因为梯度是灰度变化明显的地方,而边缘也是灰度变化明显的地方。当然这一步只能得到可能的边缘。因为灰度变化的地方可能是边缘,也可能不是边缘。这一步就有了所有可能是边缘的集合。

第三步,非极大值抑制。通常灰度变化的地方都比较集中,将局部范围内的梯度方向上,灰度变化最大的保留下来,其它的不保留,这样可以剔除掉一大部分的点。将有多个像素宽的边缘变成一个单像素宽的边缘。即“胖边缘”变成“瘦边缘”。

第四步,双阈值筛选。通过非极大值抑制后,仍然有很多的可能边缘点,进一步的设置一个双阈值,即低阈值(low),高阈值(high)。灰度变化大于high的,设置为强边缘像素,低于low的,剔除。在low和high之间的设置为弱边缘。进一步判断,如果其领域内有强边缘像素,保留,如果没有,剔除。

这样做的目的是只保留强边缘轮廓的话,有些边缘可能不闭合,需要从满足low和high之间的点进行补充,使得边缘尽可能的闭合。

参考文章:https://blog.csdn.net/likezhaobin/article/details/6892176

1.2 验证流程:

搭建一个视频流Modelsim仿真,在基于FPGA视频图像算法开发过程中,最终目的是为了把摄像头实时视频数据经过一系列的图像算法,通过显示设备显示出来;在开发过程中,我们不能总是在FPGA板子上在线调试,一个是耗时时间长;另一个是不容易找出错误,因此,有必要模拟一个视频时序,用来验证算法,并有效的利用Matlab工具把静态图片“打散”保存到txt文本里,供Modesim读取,然后通过Matalb“复现”处理后的文本。

二、操作步骤

第一步:获取图像

截取len图片,格式为bmp

这里使用上张len图设置了一种分辨率 640X480,如果不是,这里可用画图软件打开图片可以修改分辨率。

第二步:Matlab产成图像

my_image_gen.m 读取的len.bmp的彩色图像,matlab运行后,将使用matlab函数灰度化的灰度图像数据写进,image_data.txt。

第三步:Modelsim仿真路径设置

仿真工程打开的正确方式:

方法1:保证仿真工程正常打开,解压后文件需要 放在新建和原路径一样的路径。

方法2:不需要新建相同路径,需要文本打开并修改仿真工程里的 *.mpf 绝对路径。

方法3:使用自动仿真脚本。

第四步:开始仿真

1) 打开modelsim 仿真工程,找到work

2)然后找到tb_image_canny功程名,右键 simmulate 到仿真页面

3)最后点击黄色按键,全速仿真,结束会自动停止。

第五步:matlab 查看图像

上一步仿真结果会出现三个txt文件:canny_data.txt 、Gs_data_out.txt、sobel_data_out.txt

直接运行my_image_show.m 即可

责任编辑:haq

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

    关注

    50

    文章

    4080

    浏览量

    133584
  • 图像
    +关注

    关注

    2

    文章

    1084

    浏览量

    40459
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110085

原文标题:基于Verilog的Canny图像算法仿真

文章出处:【微信号:FPGA_Study,微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用VLIB在TMS320C64x/64x+上实现Canny边缘检测

    电子发烧友网站提供《利用VLIB在TMS320C64x/64x+上实现Canny边缘检测.pdf》资料免费下载
    发表于 10-14 11:13 0次下载
    利用VLIB在TMS320C64x/64x+上<b class='flag-5'>实现</b><b class='flag-5'>Canny</b>边缘检测

    DSP国产教学实验箱_实验案例_操作教程:5-11 边缘检测

    一、实验目的 学习Canny边缘检测的原理,掌握图像的读取方法,并实现边缘检测。 二、实验原理 边缘检测 在数字图像中,边缘是指图像局部变化
    发表于 07-19 10:38

    图像识别算法有哪几种

    图像识别算法是计算机视觉领域的核心技术之一,它通过分析和处理图像数据,实现图像中的目标、场景和物体的识别和分类。
    的头像 发表于 07-16 11:22 1070次阅读

    图像识别算法都有哪些方法

    图像识别算法是计算机视觉领域的核心任务之一,它涉及到从图像中提取特征并进行分类、识别和分析的过程。随着深度学习技术的不断发展,图像识别算法
    的头像 发表于 07-16 11:14 5553次阅读

    图像识别算法的提升有哪些

    引言 图像识别是计算机视觉领域的核心任务之一,旨在使计算机能够自动地识别和理解图像中的内容。随着计算机硬件的发展和深度学习技术的突破,图像识别算法的性能得到了显著提升。本文将介绍
    的头像 发表于 07-16 11:12 653次阅读

    图像识别算法的优缺点有哪些

    图像识别算法是一种利用计算机视觉技术对图像进行分析和理解的方法,它在许多领域都有广泛的应用,如自动驾驶、医疗诊断、安全监控等。然而,图像识别算法
    的头像 发表于 07-16 11:09 1599次阅读

    图像识别算法的核心技术是什么

    图像识别算法是计算机视觉领域的一个重要研究方向,其目标是使计算机能够像人类一样理解和识别图像中的内容。图像识别算法的核心技术包括以下几个方面
    的头像 发表于 07-16 11:02 637次阅读

    opencv图像识别有什么算法

    图像识别算法: 边缘检测 :边缘检测是图像识别中的基本步骤之一,用于识别图像中的边缘。常见的边缘检测算法
    的头像 发表于 07-16 10:40 1036次阅读

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

    计算机软件实现方式有更快的处理速度。 经验证,系统工作稳定,满足实时性要求 。 MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列 引言 图像的边缘包含一副
    发表于 05-24 07:45

    FPGA设计中 Verilog HDL实现基本的图像滤波处理仿真

    今天给大侠带来FPGA设计中用Verilog HDL实现基本的图像滤波处理仿真,话不多说,上货。 1、用matlab代码,准备好把图片转化成Vivado Simulator识别的格式,即每行一
    发表于 05-20 16:44

    K折交叉验证算法与训练集

    K折交叉验证算法与训练集
    的头像 发表于 05-15 09:26 553次阅读

    基于FPGA的常见的图像算法模块总结

    意在给大家补充一下基于FPGA的图像算法基础,于是讲解了一下常见的图像算法模块,经过个人的总结,将知识点分布如下所示。
    的头像 发表于 04-28 11:45 597次阅读
    基于FPGA的常见的<b class='flag-5'>图像</b><b class='flag-5'>算法</b>模块总结

    fpga原型验证平台与硬件仿真器的区别

    FPGA原型验证平台与硬件仿真器在芯片设计和验证过程中各自发挥着独特的作用,它们之间存在明显的区别。
    的头像 发表于 03-15 15:07 1109次阅读

    FPGA图像处理之CLAHE算法

    在FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
    的头像 发表于 01-04 12:23 2529次阅读
    FPGA<b class='flag-5'>图像</b>处理之CLAHE<b class='flag-5'>算法</b>

    数字电路设计有哪些仿真验证流程

    数字电路设计的仿真验证流程是确保设计能够正确运行的重要步骤之一。在现代电子设备中,数字电路被广泛应用于各种应用领域,如计算机、通信设备、汽车电子等等。因此,设计师必须通过仿真验证来确保
    的头像 发表于 01-02 17:00 1647次阅读