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

    文章

    549

    浏览量

    65424
  • 数字图像处理

    关注

    7

    文章

    103

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    图像采集卡:机器视觉时代的图像数据核心枢纽

    采集、转换、传输与初步处理,搭建图像传感器(相机/摄像头)与计算机之间的高速数据链路。其核心价值在于解决“原始图像信号如何高效、精准、稳定地转化为计算机可处理数据
    的头像 发表于 11-12 15:15 287次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:机器视觉时代的<b class='flag-5'>图像</b>数据核心枢纽

    汽车HIL测试系统,欧美标充电模型Simulink模型,开发,有偿

    提供一个欧美标充电模型,交付物为白盒Simulink模型
    发表于 09-04 16:23

    图像采集卡与视频采集卡的主要区别对比

    标是高速、高精度地捕获单帧或连续多帧静态图像。它关注的是单张图片的质量、细节、分辨率和精确性。常用于需要分析图像内容而非连续观看流畅视频流的场景。视频采集卡:主要
    的头像 发表于 06-27 14:42 647次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡与视频<b class='flag-5'>采集</b>卡的主要区别对比

    模型自适应控制在永磁同步电机转速的仿真研究

    估计动态系统非线性函数和控制律;基于系统输出误差提出三个控制规则生成恰当信号控制电机转速。在 Simulink 环境下建立控制器和永磁同步电机转速仿真系统,仿真分析结果验证了提出方法控制电机转速
    发表于 06-25 13:01

    工业相机图像采集卡:机器视觉的核心枢纽

    工业相机图像采集卡是用于连接工业相机与计算机的关键硬件设备,主要负责将相机输出图像信号转换为计算机可处理的数字信号,并实现高速、稳定的数据传输。它在工业自动化、机器视觉、医学影像、科
    的头像 发表于 05-21 12:13 537次阅读
    工业相机<b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:机器视觉的核心枢纽

    如何实现MC33774IC在Simulink环境中使用基于模型的设计?

    我想熟悉如何实现MC33774IC 在 Simulink 环境中使用基于模型的设计。 尽管 MATLAB 提供了一些示例文件,但它们似乎是最终版本。要更深入地了解如何配置MC33774,我正在寻找一个教程,该教程解释了如何从头开始在 S
    发表于 04-10 08:05

    图像采集卡的技术概述

    1.图像采集卡的基本功能图像采集卡(ImageCaptureCard)是连接相机与计算机的硬件设备,主要完成以下核心任务:信号转换:将相机输出
    的头像 发表于 03-03 14:36 673次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡的技术概述

    图像采集卡功能与应用详解

    图像采集卡(ImageCaptureCard),也称为视频采集卡或图像采集设备,是一种用于将摄像头、相机、显微镜、传感器等设备
    的头像 发表于 02-24 15:58 1600次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡功能与应用详解

    图像采集卡:现代图像处理技术的关键组件

    在现代科技快速发展的背景下,图像处理技术已成为信息技术领域不可或缺的一部分。图像采集卡,作为连接计算机与各种图像采集设备的重要硬件组件,扮演
    的头像 发表于 02-20 10:42 923次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>采集</b>卡:现代<b class='flag-5'>图像</b>处理技术的关键组件

    如何使用图像采集

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

    Simulink与 Simscape的结合使用

    。用户可以利用 Simulink 进行系统建模、仿真、测试和验证,以及生成代码。 Simscape 简介 Simscape 是一个用于创建基于物理的模型的仿真环境。它提供了一个库,包含各种物理组件,如机械、电气、液压和热力系统等。Simscape 允许用户以直观的方式构建
    的头像 发表于 12-12 09:31 2692次阅读

    Simulink的状态机建模方法 Simulink数据可视化与分析功能

    1. Simulink的状态机建模方法 1.1 理解状态机的基本概念 在开始建模之前,了解状态机的基本概念是必要的。状态机由以下几个部分组成: 状态(States) :系统可能处于的不同条件或情况
    的头像 发表于 12-12 09:27 4273次阅读

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

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

    Simulink模型仿真与分析技巧

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

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

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