区分表格线和大字母

时间:2010-10-05 06:54:29

标签: graphics quartz-graphics edge-detection

我正在做一些图形处理,我有一个逻辑,我有一个带边的位图,我忽略了字母E.g的所有表边。

0000000000
0111111110
0100000010
0102220010
0100200010
0100200010
0100000010
0111111110
0000000000

0 - 背景颜色
1 - 忽略边缘
2 - 我需要的边缘

如果多个连续像素超过某个阈值,例如,我的逻辑很简单。 20个连续边缘,它会将其视为一条线并忽略它。

我的问题是,在大字体和字母(如H和T)上,它肯定会超过阈值。请告知我是否需要实现更好的方法或额外的逻辑,以便将表格行与字母分开。

[更新]附加考虑:性能,此逻辑将在触摸移动(拖动)期间使用。它会被召唤很多次,所以它需要很快。

1 个答案:

答案 0 :(得分:1)

如果表格线保证很薄,则忽略粗线。但是,如果应用程序中的行是通过边缘检测生成的(总是1像素的薄),则需要连接组件。

基本上,“厚度”是指从边缘轮廓测量的厚度:

  • 00000000100000000此行的厚度为1
  • 00000011111000000此行的粗细为5.但是,在边缘检测的输出中不会出现这种情况,因为边缘检测算法专门用于消除此情况。
  • 00000000111111111这是从黑色到白色的过渡。

表格线通常具有较小的厚度。大字体通常从黑色过渡到白色,因为它们的厚度大于边缘轮廓窗口。