主要内容

直方图均衡

此示例显示如何使用Vision HDL Toolbox直方图库块来实现直方图均衡。

此示例模型提供了一种硬件兼容的算法。您可以使用此算法生成HDL代码,并使用Xilinx™Zynq™参考设计在电路板上实现。看基于Zynq的硬件直方图均衡(基于Xilinx Zynq的硬件的计算机视觉工具万博1manbetx箱支持包)

介绍

该模型显示如何使用直方图库块来通过应用直方图均衡来增强图像的对比度。要了解更多信息,请参阅直方图块参考页面。该直方图均衡示例中有三个组件。

  • 视频分区将大图像分为四个非重叠小图像以进行并行直方图计算。

  • hdlhistograph.计算图像的累积直方图。

  • 均衡将均等的直方图应用于原始图像并生成对比度增强图像。

视频分区

在整个图像上计算直方图,或者在整个图像上计算直方图,或者对图像的小区的小区域计算。计算大图像的直方图是耗时的。该示例中的视频分区组件将大图像分为四个非重叠的小图像。直方图同时在四个小图像上计算。每个输入帧将每个输入帧分成四个120乘160个小图像。每个小图像连接到帧到像素块以产生像素流和相应的控制信号。

hdlhistograph.

hdlhistograph.子系统针对HDL代码生成进行了优化。使用Vision HDL工具箱直方图库块计算像素流的直方图。由于输入图像是具有数据类型UINT8的灰度刻度,所以输入像素被分组为256个箱。一旦块断言,模型顺序读取计算的直方图箱依次读取readrdy.信号。发送垃圾箱值以用于累积直方图计算。读取所有256个箱子值后,模型断言Binreset.将所有垃圾箱重置为零。然后将每个小图像的收集的直方图一起加入以计算大图像的累积直方图。

读取和重置直方图箱的时序图如下图所示。

均衡

直方图均衡可以应用于计算累积直方图的当前帧,或者之后的帧。如果申请到当前帧,则需要存储输入视频。该示例延迟了一个帧的输入视频,并对原始视频执行均匀均衡。然后将均衡的视频与原始视频进行比较。

HDL代码生成

使用Xilinx ISE在Virtex6(XC6VLX240T-1FFG1156)FPGA上合成从直方图生成的HDL码,并且电路在大约190 MHz处运行,这足以实时处理数据。

要检查和生成此示例的HDL代码,您必须具有HDL Coder™许可证。

您可以使用命令

makehdl('histogramequalizationhdl / hdlhistograph'

或者

makehdltb('histogramequalizationhdl / hdlhistograph'

为HDLHistogram子系统生成HDL代码和测试台。笔记:由于数据大小大,测试台代生成需要很长时间。考虑在生成测试台之前减少模拟时间。