1. 概述

本设计采用FPGA技术,实现CMOS视频图像的阈值分割,并通过以太网传输(UDP方式)给PC实时显示。

2. 硬件系统框图

CMOS采用MT9V011(30万像素),FPGA采用ALTERA公司的CYCLONE IV,以太网卡采用REALTK公司的100M网卡芯片,硬件框图如下:

FPGA设计——图像处理(阈值分割)_第1张图片

硬件平台采用ETree的FPGA开发板,如下图所示:

FPGA设计——图像处理(阈值分割)_第2张图片

3. 算法原理

图像分割有多种算法,这里只介绍简单的双阈值分割法,在高阈值和低阈值范围内的定义为0,其他区域定义为255。

具体计算公式如下:

FPGA设计——图像处理(阈值分割)_第3张图片

4. 算法实现

阈值分割算法比较简单,关键是判断两个阈值的大小,这里根据具体的环境设置了高阈值为8'h3F,低阈值为8'h0F,如果需要自动更新两个阈值可以实时计算当前画面的平均值和均方差,然后根据它们的和确定低阈值,2倍和确定高阈值,这里就不做详细设计,有兴趣的读者可以尝试实现。

always @(posedge cmos_pclk)
begin
    cmos_href_r  <= cmos_href;
    cmos_vsync_r <= cmos_vsync;
    cmos_data_r  <= (cmos_data<=8'h3F && cmos_data>=8'h0F)?8'h01:8'hf0;
end

5. 最终效果

下图为原始图片效果。

FPGA设计——图像处理(阈值分割)_第4张图片

阈值分割后的效果图如下,时钟的数字被分割出来。

FPGA设计——图像处理(阈值分割)_第5张图片