主要内容

噪音和图像锐化

此示例显示了如何实现图像处理设计的前端模块。该前端模块去除噪声并锐化图像以提供后续处理的更好的初始条件。

不对焦的物体会造成模糊的图像。摄像头或视频传感器上的死角或卡住的像素,或者来自硬件组件的热噪声,都会导致图像中的噪声。在这个例子中,前端模块使用Vision HDL工具箱™中的两个像素流过滤器块来实现。中值滤波器去除噪声,图像滤波器锐化图像。该示例将像素流结果与来自计算机视觉系统工具箱™的全帧块生成的结果进行比较。

此示例模型提供了一种硬件兼容的算法。您可以使用Xilinx™Zynq™参考设计在板上实现该算法。看使用zynq硬件进行图像锐化(基于Xilinx Zynq的硬件的Vi金宝appsion HDL工具箱支持包)

示例的结构

计算机视觉工具箱块每次在整个框架上运行。视觉HDL工具箱块对像素数据流进行操作,每次一个像素。Vision HDL工具箱中的转换块,帧到像素和像素到帧,使您能够在全帧设计的同时模拟流像素设计。

NoiseRemovalAndImageSharpeningHDL.slx系统如下所示。

下图显示了全帧行为模型子系统的结构,它由基于帧的中值滤波器和2-D FIR滤波器组成。如前所述,中值过滤器消除了噪声,2-D FIR滤波器配置为锐化图像。

像素流HDL模型子系统包含中值滤波器和2-D FIR滤波器的流实现,如下图所示。您可以从像素流HDL模型子系统生成HDL代码。

验证子系统将来自像素流处理的完全帧处理的结果进行比较。

下图从左到右分别是模糊带噪源视频的一帧,经过中值滤波后的去噪版本,以及经过二维FIR滤波后的锐化输出。

图片来源

下图显示了图像源子系统。

Image Source块导入灰度图像,然后使用名为Blur and Add Noise的MATLAB函数块对图像进行模糊并注入椒盐噪声。IMFILTER函数使用3 × 3平均内核来模糊图像。椒盐噪声是通过调用IMNOISE(I,'salt & pepper',D)命令注入的,其中D是噪声密度,定义为椒盐像素之和与图像中总像素的比率。这个密度值由噪声密度常量块指定,它必须在0和1之间。Image Source子系统输出完整图像的二维矩阵。

帧到像素:生成像素流

帧到像素块将完整的图像帧转换为像素流。组件字段的数量设置为1,用于灰度图像输入,视频格式字段为240p以匹配视频源。视频源的采样时间由帧中的总像素的乘积和帧中的总视频线路确定为像素块。有关更多信息,请参阅帧像素块引用页面。

Pixel-Stream HDL模型

中值滤波块用于去除盐和胡椒噪音。要了解更多,请参阅中位过滤器块引用页面。

基于滤波系数,图像滤波块可用于模糊、锐化或检测中值滤波后恢复图像的边缘。在本例中,Image Filter被配置为锐化图像。要了解更多,请参阅图像滤波块引用页面。

像素到帧:将像素流转换回全帧

像素帧块利用同步信号将像素流转换为完整帧。像素到帧的组件数字段和视频格式字段分别设置为1和240p,以匹配视频源的格式。

验证像素流处理设计

如下所示,验证子系统验证了对全帧行为模型的像素流HDL模型的结果。

在参考图像和流处理图像之间计算峰值信噪比(PSNR)。理想情况下,该比率应该是INF,指示来自来自像素流HDL模型生成的全帧行为模型的输出图像。

生成HDL代码并验证其行为

要检查并生成本例中引用的HDL代码,您必须拥有HDL Coder™许可证。

要生成HDL代码,使用以下命令:

makehdl (“NoiseRemovalAndImageSharpeningHDL / Pixel-Stream HDL模型”);

要生成测试台,请使用以下命令:

makehdltb(“NoiseRemovalAndImageSharpeningHDL / Pixel-Stream HDL模型”);