目前基本实现了入门级图像处理的基本几个算法,接下来也就是最后两个非常简单的算法,这里只简单介绍,搞定之后,就可以在上面几个算法上实现各种其他应用,明天应该会把文档、源码整理好,谢谢大家支持。
一、腐蚀运算算法的 HDL 实现
简单的概括,就是用 0 表示蛀虫, 1 表示大米。蛀虫腐蚀大米的过程便是腐蚀运算,我们用 3*3 像素阵列来解释:
图9‑1腐蚀运算算法
上图左因为蛀虫(0)的存在,将 8 颗大米(1)腐蚀掉,最后只剩下蛀虫(0);上图中即便只存在一蛀虫(0),但由于蛀虫太厉害了,最后大米来时烂掉了;
上图右由于没有蛀虫(0),固然大米(1) 一颗不烂,保存完好。
关于算法的实现,可以用下式子来表示,即 3*3 像素的与运算:
在 HDL 中, 为了通过面积去换取速度,我们将上式改变如下:
即通过 2 个时钟/步骤的算法,便能实现腐蚀运算的结果。
简单的概括,0 表示害虫, 1 表示青蛙,青蛙吃了害虫表示膨胀运算, 我们用 3*3 像素阵列来解释:
图10‑1膨胀运算算法
上图左只有害虫(0),固然害虫(0)幸免被吃;上图中虽然存在着 8 条害虫(0),但青蛙(1)的胃口太大了,所以把害虫(0) 给吃光了;上图右只有青蛙(1),虽然没的吃,但青蛙(1)还是青蛙(1)。
关于算法的实现,可以用下式子来表示,即 3*3 像素的与运算:
在 HDL 中, 为了通过面积去换取速度,我们将上式改变如下:
即通过 2 个时钟/步骤的算法,便能实现膨胀运算的结果。