1. 概述

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

2. 硬件系统框图

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

75154f1ae4f935f3f6a560c282fb7996.png-wh_

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

f623e51155858a0a08dca4ed50365a77.jpg-wh_

3. 算法原理

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

具体计算公式如下:

3f9da9802615773587c394d59343430e.jpg-wh_

4. 算法实现

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

  1. always @(posedge cmos_pclk)
  2. begin
  3.     cmos_href_r  <= cmos_href;
  4.     cmos_vsync_r <= cmos_vsync;
  5.     cmos_data_r  <= (cmos_data<=8'h3F && cmos_data>=8'h0F)?8'h01:8'hf0;
  6. end

5. 最终效果

下图为原始图片效果。

a3cd874437f9a252e7a4341a2701c598.png-wh_

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

08d4efade97d43fb6c1751969b20146d.jpg-wh_