学习“Simulink中搭建图像的采集与输出模型案例分析”笔记

发布于:2023-01-09 ⋅ 阅读:(391) ⋅ 点赞:(0)

学习“Simulink中搭建图像的采集与输出模型案例分析”笔记

根据elecfans上的一篇文章学习Simulink中搭建图像处理方法,也遇到了一些问题,后面有解决说明。

在elecfans的网站上介绍这篇文章转载自CSDN,但是目前原文已经搜索不到了。

完成后的模型这个样子:

img

步骤

设置参考图像

因为最近使用的屏幕是160×128大小的,所以裁剪图片到160*128。百度图片找了一个向日葵做代替。

img

右键编辑,使用Windows画图修改像素到要求的尺寸。

img

添加模块

Image From File:读取图像

“File name”设置图片文件路径;“Sample time”设置为ImSizeW*ImSizeH即只做一次完整的图像采集。这里设置为inf;

“Image signal”设置为Separate color signals可以独立输出图像的R、G、B三个通道,每个通道都是图片大小。

img

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

因为一些函数是逐行处理数据而非逐列处理。

img

Convert 2-D to 1-D:将二维数组重新按一维数组的顺序排列。

按照MATLAB的风格,是逐列转换的。相当于data[:]。

img

成对使用Frame Conversion和Unbuffer:将一维数组(向量)转换为标量形式。

img

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

这个不要也可以。

Data Type Conversion:Simulink处理后的数据可能格式会改变,这里加入该block将数据转换为图像的uint8格式。

img

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

img

Convert 1-D to 2-D:将一维数组重新整理为指定格式的二维数组。

img

这里需要注意行和列的设置。

img

Math Function:由上图可知,整形为二维数组后,原本图像的每一行数据变成了矩阵的每一列。

img

Video Viewer:分别输入R、G、B三个通道的数据。

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

img

最终效果

疑问

原文中的Gateway in& out 是什么东西?

出现Gateway in& out的时候会有下面的图标,这是一个什么模块?

img

直接使用Image From File可以读取图片格式的文件;Video Viewer可以输入图像并显示,为什么要逐行或者逐像素处理?

Image From File一次读出的便是完整的图片信息,是一个向量形式,而有些模块只能接收标量数据的输入(即单个数据)。可能FPGA的编程方式必须要逐行或者逐像素处理。

参考链接

https://www.elecfans.com/d/1310067.html


网站公告

今日签到

点亮在社区的每一天
去签到