把相机控制信号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
。公开发表
是一个周期结束时的高F
。hStart
和这个到
是同样来自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
。
编写一个测试工作台
反相机像素流链接使用这些组件,编写一个试验台脚本:
预分配输出向量减少模拟时间
将每个像素的相机链路控制信号转换为视觉HDL工具箱格式
调用
反
函数翻转每个像素值转换的控制信号像素的相机链接格式
[~,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运行。产生这种逻辑分析仪。
另请参阅
pixelcontrolstruct
|pixelcontrolsignals