功能描述:
中值滤波:
对于中值滤波部分,我们只要修改之前我给你提供的代码中的parameter,将像素大小修改为800*600即可。别的地方不变。
模版匹配:
在进行模版匹配的时候,由于最后的doutput输出这里参数设置了1600和1200,所以在模版匹配的时候,我们这里的延迟也设置了2*800,2*600,因此,在这里,我们将原来的模版匹配算法进行略微的修改。原理的模版匹配是等中值滤波全部完成之后将数据保存起来,然后再通过地址读取的方法获得13*13的矩阵,但是这样做,我在实际测试的时候,发现延迟非常严重。通常有几帧的延迟,因此,这里我修改了一下模版匹配的算法。使其适合FPGA中运行。
通过仔细测试验证可知,实际doutput输出的图像像素点坐标,两行之间满足如下关系:
当前行x,y,那么对应的下一行同一列位置的点的坐标为:
x,y+2*800-512
即
x,y+1088。
那么我们在中值滤波得到结果之后,对其做行列延迟,同时得到169个并行的信号,同时和模版中的169个信号进行运算,这里,我们也不需要将169个数据保存到rom中,直接在程序中编写,这样就可以进行并行的处理了,从而保证显示的实时性。
但是,由于当模版大的时候,所需要暂存的数据量也就越大,从而导致资源不够,因此,为了方便,这里再不改变原理的情况下,我们在原来的基础上,适当了降低了模版大小,这里,我们所使用的模版大小为9*9,另外一方面,由于模版本身比较小,所以为了显示效果明显,这里的跟踪框,我们使用大框来表示,这样方便观察。
(当然,在理论上,模版越大,则跟踪效果越好,但是所需要的资源也就越大,时序也就越复杂)
这里,由于我们的模版比较小,当然13*13也是非常小的,相对于背景800*600而言,不管是13*13还是9*9都比较小,所以在测试的时候,环境中存在和模版类似的目标的概率较高,从而会影响性能,因此,在测试的时候,建议将背景布置成单一颜色的背景,当然,实际中,我们一般会采用体积达到至少背景1/15的作为模版的。但这需要更多的硬件资源以及更复杂的时序控制,在本硬件设备中,暂时不具备这个条件。这里不予考虑。
|