【发布时间】:2012-09-13 21:38:49
【问题描述】:
我必须使用 Aforge blob 提取方法提取红色标记图,但我无法提取该特定网格以读取它。
【问题讨论】:
标签: c# blob extraction aforge
我必须使用 Aforge blob 提取方法提取红色标记图,但我无法提取该特定网格以读取它。
【问题讨论】:
标签: c# blob extraction aforge
这个任务可以很简单地解决,无需进一步使用 AForge。
如果您的样本中的所有网格都具有相似的结构:即具有垂直-水平函数图形的同质网格,您可以使用以下算法:
计算垂直方向的白色像素密度,如下图所示。它只是每条水平线中所有 RGB 分量之和的归一化值(不知道它的名称。如果有人知道,请报告)。
您必须提取白色像素密度最低的 y 轴值,并忽略绿色椭圆中的 y 轴值。如果此最小值尚未建立,您也必须考虑绿色椭圆中的值。如果在考虑的 y 轴值中,图像右侧的白色像素太多,请忽略它。否则,恭喜!我们找到了直到直角的黑线段。
之后,必须重复此过程以检测下一条水平线,直到图像结束。
从建立的水平线构造最终函数。
【讨论】:
如果您只想将图形保留在网格中并删除所有其他线或线段,并且如果您的图像是您计划处理的所有图像的样本,那么我看到了两个可供尝试的选项:
1) 如果没有图形线的区域的灰度阈值与图形线的灰度阈值存在差异,则使用该阈值并应用 Aforge.Net 的阈值 API 之一,例如 IterativeThreshold。
2) 您可以尝试 AForge.Net 的 errosion API 并迭代 N 次,直到除图形线之外的所有其他线都被侵蚀。如果图形线由于侵蚀而变浅,请在其上方应用 Dillation。
【讨论】: