《一种改进的并行细化算法》的CSharp代码详解

   《一种改进的并行细化算法》在上一篇文章中给出了其C#实现代码以及相关的实验结果,本文将详细讲述该算法的程序实现方法。虽然最终我所实现的《一种改进的并行细化算法》的实验结果的识别度不如zhang-suen算法,但这篇文献中提及的将消除规则制表然后查表的方法让我有如醍醐灌顶,这种查表法大大提高了并行细化算法的速度,而且它非常适合用在含模板处理的图像处理算法中。看过这篇文献后,再回头看我之前的写的滴水算法,分割算法等等代码里用的方法是多么的低端,小气,无档次。这,就是学习的过程吧。

   《一种改进的并行细化算法》一文中讲过,我们细化的对象是二值化图像,黑像素即目标像素用1表示,白像素即背景像素用0表示。符合下图中8邻域中黑色像素个数为2~7的情况是需要删除的点,这里的删除指的是将目标像素点变更为背景像素。

   在程序中,按照下图的原则将原文中需要删除的每一个模板对应为一个十进制数值,将这些数值建成消除规则表。在处理图像时,遍历像素点,将像素点的8邻域按相同的规则求出其对应的十进制数值,然后再去查消除规则表。若消除规则表包含该数值,那么当前像素点将被列为待消除点,再进一步处理两像素宽的状况。两像素宽的模板以及模板对应数值在程序中均有注释,这里就不在赘述。

Comments

  1. By C#

    回复

    • 回复

  2. By C#

    回复

    • 回复

    • 回复

  3. By C#

    回复

    • 回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub