主要内容

把相机控制信号pixelcontrol格式

这个例子展示了如何将相机连接®信号pixelcontrol结构、转化的像素愿景HDL工具箱™对象,并将控制信号转换回相机链接格式。

视觉HDL工具箱块和对象使用一个定制的视频格式。如果您的系统作用于流媒体视频数据从一个摄像头,你必须相机控制信号转换成这个自定义格式。或者,如果您视觉HDL工具箱算法集成到现有的设计和验证操作相机格式的代码,您还必须从视觉HDL工具箱设计输出信号转换回相机格式。

你可以从三个函数生成HDL代码在这个例子。创建本地副本的所有文件在这个例子中,你可以查看和编辑,单击打开脚本按钮。

在相机链接创建输入数据的格式

相机链接格式包含三个控制信号:F表示有效的框架,L表示每个有效的行,和D表示每个有效像素。对于这个示例,创建相机链接格式中的输入向量来表示一个基本的视频帧。这个2×3向量描述,8位灰度框架。图,动态图像在虚线矩形区域,和不活跃的像素包围它。其灰度值的像素标记。

F =逻辑([0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,- 1,0,0,0,0,0,0,0,0));L =逻辑([0,0,0,0,0,0,0,1,1,- 1,0,0,0,1,1,- 1,0,0,0,0,0,0,0,0));D =逻辑([0,0,0,0,0,0,0,1,1,- 1,0,0,0,1,1,- 1,0,0,0,0,0,0,0,0));像素= uint8([0, 0, 0, 0, 0, 0, 0, 30岁,60岁,90年,0,0,0120150180,0,0,0,0,0,0,0,0));

设计构想HDL工具箱算法

创建一个函数反演图像使用视觉HDL工具箱算法。函数包含一个系统对象,支持HDL代码生成。金宝app该函数期望并返回一个像素和相关控制信号在视觉HDL工具箱格式。

函数[pixOut, ctrlOut] =反转(pixIn ctrlIn)持续的invertI;如果isempty (invertI) tabledata = linspace (255、0256);invertI = visionhdl.LookupTable (uint8 (tabledata));结束[pixOut, ctrlOut] = invertI (pixIn ctrlIn);

相机链路控制信号转换pixelcontrol格式

编写一个定制的系统对象相机连接信号转换到视觉HDL工具箱控制信号格式。将控制信号转换为对象,然后调用pixelcontrolstruct函数来创建所期望的结构视觉HDL工具箱系统对象。这个代码片段显示了逻辑转换信号。

ctrl = pixelcontrolstruct (obj.hStartOutReg, obj.hEndOutReg,…obj.vStartOutReg、obj.vEndOutReg obj.validOutReg);
音速启动= obj。FReg && ~obj.FPrevReg; vEnd = ~F && obj.FReg; hStart = obj.LReg && ~obj.LPrevReg; hEnd = ~L && obj.LReg;
obj。vStartOutReg =音速启动;obj。vEndOutReg =出售;obj。hStartOutReg = hStart;obj。这个到OutReg = hEnd; obj.validOutReg = obj.DReg;

对象存储在寄存器中输入和输出控制信号值。音速启动是高一个周期的开始F公开发表是一个周期结束时的高FhStart这个到是同样来自l。对象返回的当前值ctrl每次调用它。

这种处理增加了两个周期的延迟控制信号。匹配后的对象通过像素值延迟周期。系统对象的完整代码,请参阅CAMERALINKtoVHT_Adapter.m

转换pixelcontrol相机链接

编写一个定制的系统对象视觉HDL工具箱信号转换回相机链接格式。对象调用pixelcontrolsignals函数来平控制结构到其组件的信号。然后计算相当于相机连接信号。这个代码片段显示了逻辑转换信号。

[hStart,又,音速启动,出售,有效]= pixelcontrolsignals (ctrl);
Fnew = (~ obj。FOutReg&& vStart) || (obj.FPrevReg && ~obj.vEndReg); Lnew = (~obj.LOutReg && hStart) || (obj.LPrevReg && ~obj.hEndReg);
obj。FOutReg = Fnew; obj.LOutReg = Lnew; obj.DOutReg = valid;

对象存储在寄存器中输入和输出控制信号值。F从高音速启动公开发表l从高hStart这个到。对象返回的当前值FOutReg,LOutReg,DOutReg每次调用它。

这个处理增加了延迟控制信号的一个周期。后的对象通过像素值匹配的延迟周期。系统对象的完整代码,请参阅VHTtoCAMERALINKAdapter.m

创建转换函数支持HDL代码生成金宝app

包装转换器系统对象的功能,类似于,所以你可以为这些算法生成HDL代码。

函数[ctrl, pixelOut] = CameraLinkToVisionHDL (F、L、D像素)% CameraLink2VisionHDL:转换CameraLink控制信号的一个周期%视觉HDL格式,使用一个定制的系统对象。%介绍两个周期的延迟控制信号和像素数据。持续的CL2VHT;如果isempty (CL2VHT) CL2VHT = CAMERALINKtoVHT_Adapter ();结束[ctrl, pixelOut] = CL2VHT (F、L、D像素);

看到CameraLinkToVisionHDL.m,VisionHDLToCameraLink.m

编写一个测试工作台

反相机像素流链接使用这些组件,编写一个试验台脚本:

  1. 预分配输出向量减少模拟时间

  2. 将每个像素的相机链路控制信号转换为视觉HDL工具箱格式

  3. 调用函数翻转每个像素值

  4. 转换的控制信号像素的相机链接格式

[~,numPixelsPerFrame] =大小(像素);pixOut = 0 (numPixelsPerFrame 1“uint8”);pixel_d = 0 (numPixelsPerFrame 1“uint8”);pixOut_d = 0 (numPixelsPerFrame 1“uint8”);DOut = false (numPixelsPerFrame, 1);输出信号= false (numPixelsPerFrame, 1);笨拙的人= false (numPixelsPerFrame, 1);ctrl = repmat (pixelcontrolstruct numPixelsPerFrame 1);ctrlOut = repmat (pixelcontrolstruct numPixelsPerFrame 1);p = 1: numPixelsPerFrame [pixel_d (p), ctrl (p)] = CameraLinkToVisionHDL(像素(p), F (p), L (p)、D (p));[pixOut (p)、ctrlOut (p)) =反转(pixel_d (p), ctrl (p));[pixOut_d (p)、输出信号(p),鞠躬(p), DOut (p)] = VisionHDLToCameraLink (pixOut (p), ctrlOut (p));结束

查看结果

由此产生的向量表示这个倒2×3,8位灰度框架。图,动态图像在虚线矩形区域,和不活跃的像素包围它。其灰度值的像素标记。

如果你有一个DSP系统工具箱™许可证,您可以查看向量作为信号随着时间的推移,使用逻辑分析仪。这波形显示了pixelcontrol和相机链路控制信号,开始像素值和每个操作后的延迟像素值。NewCustomCtrlSignals_LogicAnalyzer运行。产生这种逻辑分析仪。

另请参阅

|

相关的话题