集成视觉HDL模块到相机链接系统
这个例子展示了如何设计一个Vision HDL工具箱™算法集成到使用Camera Link®信号协议的现有系统中。
Vision HDL工具箱块使用自定义的流媒体视频格式。如果您将Vision HDL Toolbox算法集成到以不同的流媒体视频格式运行的现有设计和验证代码中,则必须转换边界上的控制信号。该示例使用自定义系统对象在Camera Link格式和Vision HDL工具箱之间转换控制信号pixelcontrol
格式。该模型使用MATLAB®系统块将系统对象导入到Simulink®中。
模型结构
该模型从MATLAB工作区导入Camera Link格式的像素数据和控制信号。的CameraLink_InvertImage
子系统设计用于集成到现有的系统,使用相机链接协议。的CameraLink_InvertImage
子系统将控制信号从Camera Link格式转换为pixelcontrol
格式,使用Lookup Table块修改像素数据,然后将控制信号转换回Camera Link格式。模型将结果数据和控制信号导出到工作空间变量。
子系统结构
的CameraLink2VHT
而且VHT2CameraLink
blocks是指向自定义系统对象的MATLAB系统块。对象之间转换相机链接信号和pixelcontrol
visual HDL工具箱块和对象使用的格式。
您可以将Vision HDL工具箱块的任何组合放到子系统的中间。本例使用倒置查找表。
您可以从这个子系统生成HDL。
导入摄像机链路格式的数据
Camera Link由三个控制信号组成:F表示有效帧,L表示每条有效线,D表示每一个有效像素。中定义了输入数据和控制信号InitFcn
回调。这些向量描述了这个2乘3 8位的灰度帧。在图中,活动图像区域位于虚线矩形内,非活动像素围绕在其周围。像素用它们的灰度值标记。
鳍=逻辑([0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,- 1,0,0,0,0,0,0,0,0));林=逻辑([0,0,0,0,0,0,0,1,1,- 1,0,0,0,1,1,- 1,0,0,0,0,0,0,0,0));喧嚣=逻辑([0,0,0,0,0,0,0,1,1,- 1,0,0,0,1,1,- 1,0,0,0,0,0,0,0,0));pixIn = uint8([0, 0, 0, 0, 0, 0, 0, 30岁,60岁,90年,0,0,0120150180,0,0,0,0,0,0,0,0));
转换相机链接控制信号到像素控制格式
编写一个自定义的System对象,将Camera Link信号转换为Vision HDL Toolbox格式。中设计的对象转换相机控制信号到像素控制格式的例子。
对象转换控制信号,然后创建包含新控制信号的结构。当对象包含在MATLAB系统块中时,该块将此结构转换为Vision HDL Toolbox块所期望的总线格式。有关System对象的完整代码,请参见CAMERALINKtoVHT_Adapter.m
.
创建一个MATLAB系统块,并将其指向System对象。
设计视觉HDL工具箱算法
选择Vision HDL Toolbox块来处理视频流。这些块接受并返回标量像素值和pixelcontrol
包含相关控制信号的总线。这个标准接口使得从Vision HDL Toolbox库中连接块变得容易。
这个例子使用Lookup Table块来反转测试图像中的每个像素。将表数据设置为uint8
灰度的颜色空间。
转换像素控制到相机链接
编写一个自定义的System对象,将Vision HDL Toolbox信号转换回Camera Link格式。中设计的对象转换相机控制信号到像素控制格式的例子。
该对象接受控制信号的结构。当您在MATLAB系统块中包含对象时,该块将转换输入pixelcontrol
总线进入这个结构。然后计算等效的摄像机链路信号。有关System对象的完整代码,请参见VHTtoCAMERALINKAdapter.m
.
创建第二个MATLAB System块并将其指向System对象。
查看结果
运行仿真。得到的向量表示这个倒置的2 × 3 8位灰度帧。在图中,活动图像区域位于虚线矩形内,非活动像素围绕在其周围。像素用它们的灰度值标记。
如果您有DSP System Toolbox™许可证,您可以使用Logic Analyzer查看随时间变化的信号。中的所有信号CameraLink_InvertImage
子系统的流,并打开逻辑分析器。该波形在顶部显示输入和输出Camera Link控制信号和像素值,在中显示Lookup Table块的输入和输出pixelcontrol
格式在底部。的pixelcontrol
扩展总线来观察布尔控制信号。
有关在Simulink中观察波形的更多信息,请参见使用逻辑分析器检查和测量转换(DSP系统工具箱).
生成子系统的HDL代码
要生成HDL代码,您必须拥有HDL Coder™许可证。
要生成HDL代码,使用以下命令。
makehdl(“CameraLinkAdapterEx / CameraLink_InvertImage”)
现在,您可以将这些HDL文件与现有的Camera Link系统一起模拟和合成。