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

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

    关注

    53

    文章

    4407

    浏览量

    137671
  • 图像
    +关注

    关注

    2

    文章

    1095

    浏览量

    42158
  • Verilog
    +关注

    关注

    30

    文章

    1370

    浏览量

    114140

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    跨越“仿真到实车”的鸿沟:如何构建端到端高置信度验证体系?

    和复现高风险的“边缘案例”与“关键场景”,从而加速算法的迭代与验证。然而,仿真的价值完全取决于其结果的置信度。一个高置信度的仿真平台,其输出应在统计意义上与真实世
    的头像 发表于 12-05 17:50 51次阅读
    跨越“<b class='flag-5'>仿真</b>到实车”的鸿沟:如何构建端到端高置信度<b class='flag-5'>验证</b>体系?

    SM4算法实现分享(一)算法原理

    ,Xi、Yi、rki为字,i=0,1,2,…,31。则本算法的加密实现为: 本算法的解密实现与加密实现结构是相同的,不同的只是提供的轮
    发表于 10-30 08:10

    使用Otsu阈值算法将灰度图像二值化

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法,又称“最大类间方差法”。当我们对一个图象进行二值化操作的时候,需要根据一项灰度阈值来判决每个像素点应该被视作纯黑
    发表于 10-28 06:49

    Newton-Raphson算法实现浮点除法(七)

    的牛顿迭代算法,一直逼近于f(x) = 0的点,则有xi+1 = xi (2 - xi b),这样我们能够用下述步骤实现a/b: 1)把b移位,使其满足0.5≤b&lt;1; 2
    发表于 10-24 07:53

    基于FPGA的CLAHE图像增强算法设计

    CLAHE图像增强算法又称为对比度有限的自适应直方图均衡算法,其算法原理是通过有限的调整图像局部对比度来增强有效信号和抑制噪声信号。
    的头像 发表于 10-15 10:14 395次阅读
    基于FPGA的CLAHE<b class='flag-5'>图像</b>增强<b class='flag-5'>算法</b>设计

    信号发生器如何与波束赋形算法配合优化?

    3D方向图)。 信号生成:将算法输出的波束权重(幅度和相位)导入信号发生器,生成实际测试信号。 硬件验证:通过信号发生器和信道仿真器构建测试环境,验证硬件
    发表于 08-08 14:41

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

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

    康谋分享 | 物理级传感器仿真:破解自动驾驶长尾场景验证难题

    本文聚焦物理级仿真,剖析摄像头光学建模、CMOS 光电转换、激光雷达高斯光束与衰减建模,解读 ASAM OpenMATERIAL 3D 标准,以构建可信仿真闭环,助力算法验证与高阶智驾
    的头像 发表于 07-09 09:36 3803次阅读
    康谋分享 | 物理级传感器<b class='flag-5'>仿真</b>:破解自动驾驶长尾场景<b class='flag-5'>验证</b>难题

    【嘉楠堪智K230开发板试用体验】K230机器视觉相关功能体验

    边缘检测 边缘检测,将图像变为黑白,边缘保留白色像素,提供了两种检测算法:简单的阈值高通滤波算法Canny 边缘检测算法 上图为
    发表于 07-08 17:25

    绿氢系统 PEM 电解槽直流接入仿真验证深度解析

    ,如图所示。 模型封装参数分为:可调参数和 PEM 电解槽单个电解小室系统参数。 PEM 电解槽单个电解小室系统参数,如下表所示。 二、仿真验证 本文中我们分别用离线模型验证、实时仿真
    发表于 07-03 18:25

    电磁环境仿真验证系统软件

    电磁环境仿真验证系统软件
    的头像 发表于 04-29 16:59 824次阅读
    电磁环境<b class='flag-5'>仿真</b>与<b class='flag-5'>验证</b>系统软件

    技术分享 | AVM合成数据仿真验证方案

    AVM 合成数据仿真验证技术为自动驾驶环境感知发展带来助力,可借助仿真软件配置传感器、搭建环境、处理图像,生成 AVM 合成数据,有效加速算法
    的头像 发表于 03-19 09:40 3492次阅读
    技术分享 | AVM合成数据<b class='flag-5'>仿真</b><b class='flag-5'>验证</b>方案

    DLPC7540EVM是否支持自定义的图像处理算法,以及如何进行算法的移植?

    是否支持自定义的图像处理算法,以及如何进行算法的移植?
    发表于 02-17 08:25

    FPGA上的图像处理算法集成与优化

    、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种算法都提供了实现
    的头像 发表于 02-14 13:46 1153次阅读
    FPGA上的<b class='flag-5'>图像</b>处理<b class='flag-5'>算法</b>集成与优化

    自动驾驶规控算法验证到底需要什么样的场景仿真软件?

    ModelBase-AD凭借其优秀的静态场景模型、随机交通流模型、整车动力学模型,为各大主机厂和供应商提供了准确的自动驾驶规控算法验证仿真环境,提升了自动驾驶规控算法
    的头像 发表于 02-11 14:16 1986次阅读
    自动驾驶规控<b class='flag-5'>算法</b><b class='flag-5'>验证</b>到底需要什么样的场景<b class='flag-5'>仿真</b>软件?