文章目录
顶层框架设计
Tophat变换(白帽)实际上是原图像与“开运算”的结果图之差,算法数学表达式如下:
根据以上公式,设计系统顶层框图如下所示:
开运算为先腐蚀后膨胀的过程,将原图输入流依次流过腐蚀运算流水线和膨胀运算流水线即可,不过要注意时序对齐!!!,开运算的设计框图如下所示:
腐蚀与膨胀运算可以理解为在形态学处理核(n*n的矩形窗口)范围内寻找像素灰度值的最小值或最大值。他们之间只有些许差别,因此在设计时,将一维的腐蚀和膨胀操作划分为一个模块,通过入口参数(ERO_DIL)进行腐蚀或膨胀选择。二维腐蚀与膨胀操作的设计框图如下图所示:
一维膨胀与腐蚀模块完成输入数据流的连续几个数据的比较,完成流水线输出。设计框图如下所示:
子模块设计
在子模块设计中我们往往采用自底向上的设计原则。根据上一节所设计的整体框架及模块划分,我们需设计以下模块:
(1) 比较子模块min_max.v
(2) 一维形态学腐蚀/膨胀子模块morph_1d.v
(3) 二维形态学腐蚀/膨胀子模块morph_2d.v
(4) 二维形态学开运算子模块morph_open_2d.v
(5) 二维形态学Tophat运算模块morph_tophat_2d.v