边缘检测和图像叠加
这个例子展示了如何检测和突出对象边缘的视频流。的行为pixel-stream Sobel边缘检测器,视频流对齐、验证和叠加,通过比较计算的结果用同样的算法从计算机视觉的工具箱™帧块。
这个示例模型提供了一个hardware-compatible算法。您可以在董事会实现这个算法使用Xilinx®Zynq®参考设计。看到为Zynq-Based硬件开发视觉算法(视觉HDL工具箱支持包Xilinx Z万博1manbetxynq-Based硬件)。
结构的例子
的EdgeDetectionAndOverlayHDL.slx系统如下所示。
不同的颜色线喂全画幅行为模型和Pixel-Stream HDL模型子系统显示图像的变化速率模型的流分支。这个速度过渡是因为像素流是在相同的时间发送完整的视频帧,因此以更高的速度传播。
全画幅行为模型
下图显示的结构全画幅行为模型子系统,采用框架边缘检测块。
鉴于框架边缘检测块不引入延迟、图像叠加是由源图像和权重边缘检测输出图像,以简单明了的方式添加在一起。
一帧的源视频,边缘检测的结果,和覆盖图像显示在下图从左到右。
这是一个很好的实践开发行为系统使用块过程完整的图像帧,全画幅行为模型子系统在本例中,在前进在FPGA-targeting设计工作。这样一个行为模型有助于验证视频处理设计。后来,它可以作为一个参考验证算法的实现有针对性的FPGA。具体来说,PSNR值(峰值信噪比)块在顶层模型的比较结果从帧处理与pixel-stream处理。
帧像素:生成一个像素流
的任务帧像素是把一个完整的帧图像像素流。模拟的影响水平和垂直消隐时间在现实生活中发现硬件视频系统、动态图像增强与非图像数据。流像素协议的更多信息,请参阅流像素接口。的帧像素块配置如图所示:
的数量的组件对灰度图像输入字段设置为1,和视频格式字段是240 p视频源的匹配。
在这个例子中,活动视频区域的240 x320矩阵对应于黑暗的形象从上游腐败块。其他六个参数,即每行像素总数,总视频线,开始积极行,结束积极行,门廊,后门廊指定有多少非图像数据将增强的四周活动视频。有关更多信息,请参见帧像素块引用页面。
注意的样品时间视频源是由产品决定的每行像素总数和总视频线。
Pixel-Stream边缘检测和图像叠加
的Pixel-Stream HDL模型子系统如下图所示。你可以从这个子系统生成HDL代码。
由于pixel-stream处理的本质,不像边缘检测块的全画幅行为模型,边缘检测器从视觉上块高密度脂蛋白工具箱™将引入延迟。阻止我们的延迟直接加权和增加两个图像获取覆盖图像。为了解决这个问题,像素流对准器块用于同步两个像素流之和。
正确使用这个块,refPixel和refCtrl必须连接到像素和控制总线与延迟相关像素流。在我们的示例中,由于引入的延时边缘检测器的,像素流边缘检测子系统是延迟对喂养。因此,上游refPixel来源和refCtrl pixelOut和ctrlOut信号边缘检测子系统。
像素帧:将像素流回全帧
作为一个同伴帧像素将一个完整的图像帧像素流,像素帧块,相对地,将像素流回的全部利用帧同步信号。因为的输出像素帧块是一个二维矩阵的一个完整的形象,不需要进一步进行总线包含五个同步信号。
的数量的组件场和视频格式领域的像素,像素帧都设定在1和240 p,分别匹配视频源的格式。
验证像素流处理设计
在构建流媒体部分的设计,PSNR值块不断验证结果对原始帧设计。的延迟块在顶层模型time-aligns二维矩阵的一个公平的比较。在仿真的过程中,PSNR值块应该给正输出,表示的输出图像全画幅行为模型匹配的图像产生的流处理Pixel-Stream HDL模型。
探索的例子
示例允许您尝试不同的阈值和α值来检查他们的影响覆盖图像的质量。具体地说,两个工作空间变量和与初始值7和0.8,分别在打开创建模型。您可以修改它们的值使用MATLAB®命令行如下:
thresholdValue = 8α= 0.5
更新后的将传播到阈值场的边缘检测块内全画幅行为模型和边缘检测器块内Pixel-Stream HDL模型/边缘检测。的值将被传递到Gain1块的全画幅行为模型和Pixel-Stream HDL模型/图像叠加和的值去Gain2块。关闭该模型从工作区中清除这两个变量。
在这个例子中,有效的范围是0到256之间,包容。设置等于或大于257触发器消息参数溢出发生“阈值”。设置越高,小边的例子中发现视频。
的有效范围是在0和1之间,包容。它决定权重的边缘检测输出图像和原始图像之前添加它们。覆盖操作是一个线性插值按照下列公式。
覆盖图像=α*源图像+(1α)*边缘图像。
因此,当覆盖图像边缘检测的输出,当它变成了源图像。
生成HDL代码并验证其行为
检查并生成HDL代码中引用这个例子中,您必须有一个高密度脂蛋白编码器™许可证。
生成HDL代码,使用以下命令:
makehdl (“EdgeDetectionAndOverlayHDL / Pixel-Stream HDL模型”);
生成一个试验台,使用以下命令:
makehdltb (“EdgeDetectionAndOverlayHDL / Pixel-Stream HDL模型”);