1

我正在做一些图形处理,我有一个逻辑,其中我有一个带边缘的位图,我忽略了字母 Eg 中的所有表格边缘

0000000000
0111111110
0100000010
0102220010
0100200010
0100200010
0100000010
0111111110
0000000000

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

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

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

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

4

1 回答 1

1

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

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

  • 00000000100000000 这条线的粗细为 1
  • 00000011111000000 这条线的粗细为 5。但是,这不会出现在边缘检测的输出中,因为边缘检测算法是专门为去除这种情况而设计的。
  • 00000000111111111 这是从黑色到白色的过渡。

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

于 2010-10-05T07:44:48.967 回答