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

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

3天内不再提示

Simulink中搭建图像的采集与输出模型案例分析

电子设计 来源:CSDN博主 作者:FPGADesigner的博客 2020-12-30 12:06 次阅读

图像属于二维信号,如果想在Simulink中采集和输出图像,进行图像处理算法仿真时会遇到一些问题。本文将介绍如何搭建图像的采集与输出模型。

采集图像需要解决的问题

Computer Vision System Toolbox中包含两个模块:Image From File可以读取图片格式的文件;Video Viewer可以输入图像并显示(类似于Scope观察信号波形一样)。

但是Image From File一次读出的便是完整的图片信息,是一个向量形式,而Gateway In只能接收标量数据的输入(即单个数据)。如果将两者直接相连,会出现如下错误:

o4YBAF9uJ8yALKbbAAAeh1p1T0k389.jpg

Image From File读取一个256*256大小的图像,读出数据为一个256*256*3的数据(RGB三个通道),这个数据不能直接输入到FPGA中。我们需要利用Simulink提供的功能丰富的block完成数据之间的转换。

图像采集实现

在Simulink中添加block按下图连接:

pIYBAF9uJ82Af2csAACjzx7xP6E012.jpg

下面以列表的形式给出每个block的作用(以读取256*256的RGB图像为例,工作空间中设置变量ImSize=256):

●Image From File:读取图像:

pIYBAF9uJ8-ANNrVAABmxdHyYhc641.jpg

“File name”设置图片文件路径;“Sample time”设置为ImSize*ImSize即只做一次完整的图像采集;“Image signal”设置为Separate color signals可以独立输出图像的R、G、B三个通道,每个通道都是256*256大小。

●Math Function:该block可以运行一些基本的数学函数(如指数、对数、平方等),这里设置为Transpose,计算图像的转置矩阵。

●Convert 2-D to 1-D:该block可以将二维数组重新按一维数组的顺序排列,从矩阵的列开始转换,如下图例子所示:

o4YBAF9uJ9CAQXOGAAAXCR5zktU768.jpg

由于图像处理算法大多都是以行为单位,因此在前面加了一个Math Function模块求转置矩阵,这样在转换后的一维数组中便是按图像的每一行依次排列。

●Frame Conversion和Unbuffer:这两个block配合使用,将一维数组(向量)转换为Gateway In可以接收的标量形式。示例如下:

pIYBAF9uJ9GAXpKJAABCpa6w6BI714.jpg

Unbuffer将帧格式(frame)转换为标量数据;Frame Conversion的作用便是将一维数组以帧格式采样输出,即将一副图像共(256*256=)65536个数据打包为一帧,再由Unbuffer转换为标量。

●Data Type Conversion:目前的RGB图像每个通道大多都是uint8格式,该模块将数据格式转换为uint8。

●Unit Delay:延时一个单位,数据缓存。

●Gateway In:读取uint8格式的图像数据,数据格式设置为UFix_8_0。

图像输出实现

图像输出的流程恰好与图像采集相反,是为了将FPGA处理后的标量数据重新转换组织成图片的数组形式。在Simulink中添加block按下图连接:

pIYBAF9uJ9OAQ8nQAACPtliK2T4136.jpg

下面以列表的形式给出每个block的作用(以输出256*256的RGB图像为例,工作空间中设置变量ImSize=256):

●Data Type Conversion:Simulink从Gateway Out读出的数据会默认转换为double,这里加入该block将数据转换为图像的uint8格式。

●Buffer:与Unbuffer作用相反,将标量数据重新组织为指定帧格式输出。示例如下:

o4YBAF9uJ9SARIObAAApsH4BZW0360.jpg

双击配置该block,将“Output buffer size”设置为ImSize*ImSize,即每幅图像的数据为一帧。

●Convert 1-D to 2-D:将一维数组重新整理为指定格式的二维数组,示例如下:

pIYBAF9uJ9WAIGQDAAA2H4aRJ2c179.jpg

双击配置该block,将“Number of output rows”和“Number of output columns”都设置为ImSize,即以256*256的格式输出。

●Math Function:由上图可知,整形为二维数组后,原本图像的每一行数据变成了矩阵的每一列。因此需要加入此模块再求一此转置矩阵,得到原图像的数据排列方式。

●Video Viewer:双击打开,点击File->Image Signal->Separate Color Signals,即可分别输入R、G、B三个通道的数据。

打包子系统

可以看到上面的整个模型已经很庞大,因此将图像采集部分和图像输出部分分别打包为子系统。选中对应部分,右键->Create Subsystem from selection。代开子系统,修改IN/OUT管脚的名称为R、G、B。此时系统整体连接如下图:

o4YBAF9uJ9aAdz7pAABRE-TNGP0799.jpg

在System Generator和Gateway In中将采样时间设置为1S;Simulink仿真时长设置为256*256,即保证采集完一幅图像。再添加一个Video Viewer观察原始图片。运行仿真,结果如下:

输入与输出图片相同,表明结果正确。如果需要进行数字图像处理算法的仿真验证,在其中加入其它block实现算法即可。本系统实现了图像的采集与输出,使仿真时的结果更直观,更容易观察算法效果,大大提升了仿真效率。

编辑:hfy

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

    关注

    22

    文章

    535

    浏览量

    62402
  • 数字图像处理

    关注

    7

    文章

    103

    浏览量

    18925
收藏 人收藏

    评论

    相关推荐

    如何使用图像采集

    在现代数字技术的不断发展图像采集卡作为一种重要的硬件设备,越来越普遍地应用于各类领域,包括视频监控、医疗影像、影视制作及游戏直播等。图像采集
    的头像 发表于 12-13 15:03 127次阅读
    如何使用<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡

    Simulink与 MATLAB 的结合使用 Simulink的信号处理方法

    在工程和科学研究,信号处理是一个重要的领域,涉及到信号的采集分析、处理和生成。MATLAB 提供了丰富的信号处理工具箱,而 Simulink 提供了一个直观的图形界面,使得复杂的信
    的头像 发表于 12-12 09:25 330次阅读

    Simulink模型仿真与分析技巧

    1. 模型构建基础 1.1 理解系统需求 在开始构建模型之前,明确系统的需求和目标是至关重要的。这包括了解系统的动态特性、输入输出关系以及预期的性能指标。 1.2 选择合适的模块 Simuli
    的头像 发表于 12-12 09:23 581次阅读

    Simulink自定义模块开发教程 Simulink 在控制系统的应用

    在控制系统的设计和分析Simulink 提供了一个强大的工具集,允许工程师通过图形化界面快速构建和测试复杂的系统模型。然而,Simulink
    的头像 发表于 12-12 09:21 358次阅读

    图像采集卡的保养和维护

    图像采集卡是计算机和数字图像处理系统不可或缺的组件,它将外部视频信号转换为计算机可以理解和处理的格式。随着数字化进程的加速,越来越多的行业开始依赖
    的头像 发表于 11-21 13:05 152次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡的保养和维护

    AI大模型图像识别的优势

    模型借助高性能的计算硬件和优化的算法,能够在短时间内完成对大量图像数据的处理和分析,显著提高了图像识别的效率。 识别准确性 :通过深度学习和计算机视觉技术,AI大
    的头像 发表于 10-23 15:01 669次阅读

    用TINA如何搭建仿真模型

    使用TINA仿真单极运放的环路,仿真模型知道怎么搭建,现在要仿真由两级TL082搭建的两级运放的环路稳定性,请教,用TINA如何搭建仿真模型
    发表于 08-15 08:10

    拓扑篇丨LLC谐振变换器仿真建模与控制策略分析

    我们采用MATLAB的可视化电路仿真软件包 Simulink 进行电路模型搭建Simulink 被广泛应用于线性系统、非线性系统、数字
    发表于 08-12 16:23

    拓扑篇丨LLC谐振变换器仿真建模与控制策略分析

    副端输出负载电阻与原端等效电阻。计算变压器副端输出负载电阻: 计算变压器原端等效负载阻值: ④确定谐振电感和谐振电容: 二、电路仿真1、电路模型搭建目前,电路仿真软件很多,本篇我们采用
    发表于 07-19 10:17

    在PyTorch搭建一个最简单的模型

    在PyTorch搭建一个最简单的模型通常涉及几个关键步骤:定义模型结构、加载数据、设置损失函数和优化器,以及进行模型训练和评估。
    的头像 发表于 07-16 18:09 2001次阅读

    图像分割与语义分割的CNN模型综述

    图像分割与语义分割是计算机视觉领域的重要任务,旨在将图像划分为多个具有特定语义含义的区域或对象。卷积神经网络(CNN)作为深度学习的一种核心模型,在图像分割与语义分割中发挥着至关重要的
    的头像 发表于 07-09 11:51 904次阅读

    使用PyTorch搭建Transformer模型

    Transformer模型自其问世以来,在自然语言处理(NLP)领域取得了巨大的成功,并成为了许多先进模型(如BERT、GPT等)的基础。本文将深入解读如何使用PyTorch框架搭建Transformer
    的头像 发表于 07-02 11:41 1633次阅读

    Vivado 使用Simulink设计FIR滤波器

    的快速进位链,使实现变得容易。最后一拍数据直接使用的DSP的P端输出。 4. 模型仿真 为设计好的模型增加一个顶层,添加两个信号源作为仿真激励,使用两个频谱分析仪观测结
    发表于 04-17 17:29

    机器视觉图像采集卡的功能与应用

    视觉系统图像采集部分主要由工业相机、工业镜头以及光源组合而成,而图像处理部分则是由图像处理软件来实现。
    的头像 发表于 04-04 08:33 957次阅读
    机器视觉<b class='flag-5'>中</b><b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡的功能与应用

    【技术课堂】拓扑篇丨LC串联谐振拓扑仿真建模及控制策略分析

    ~ r~ =6.9μF。二、电路仿真01、电路模型搭建目前,电路仿真软件很多,本次我们采用Matlab的可视化电路仿真软件包 Simulink 进行电路
    发表于 03-01 10:05