HSV颜色删除/表格字段的丢失

时间:2013-04-25 14:18:02

标签: algorithm colors computer-vision imaging document-imaging

我正在编写一个系统来从表单图像中删除某些字段边框。 这些字段可能在其中写入,即使手写跨越字段边界,我也需要正确保存。

我有2张图片:1张彩色图片(转换为HSV色彩空间)和1张黑白图像,每个像素排列像素(这些是由扫描仪生成的)

我想删除(摘取)黑白图像中的场边界像素,给出 彩色图像中的颜色。

我有一个优势,因为我知道该领域的确切位置,并且 字段边界线的宽度/高度。

我当前的实现包括(对于每个字段),扫描彩色图像上的字段边界并计算该字段边界的平均HSV值(因为我确切知道字段边界的位置,我只访问“字段边界”像素,但如果它们越过场边界,我也可能会访问几个手写像素,这个想法是它们不会非常偏向平均值)。一旦我获得了场边界的“平均”HSV值,我再次扫描场边界,并为每个像素计算以下delta函数:

enter image description here

如果“当前”像素和平均HSV之间的Delta值小于0.07(根据经验找到),那么我将像素设置为白色(颜色靠近在一起),否则我将像素保持为黑色。

以下是字段的一些示例:

彩色图片: enter image description here 黑色和白色图像不掉光: enter image description here 丢弃黑色和白色图像,其中饱和度未在公式中使用: enter image description here 实际掉线黑&配方使用的白色图像(使用全部3个组件H,S& V) enter image description here

我用来获得第3张丢失图像的公式是上面的公式但是 我把饱和度排除在等式之外(我只是玩弄东西) 这显然不够精致,颜色变化,但公式非常 对饱和度变化敏感(这主要是由JPEG压缩伪像引起的 存在于图像中(示例工件):

enter image description here

我认为第四个例子是最好的,因为它对颜色变化非常敏感 你不太可能删除手写内容,但问题是你更容易被删除 由于简单的扫描或压缩导致的轻微色差,拾取边框 伪影。

您有什么想法可以减轻发生的一些颜色(饱和度)变化 在字段边界内,是否使用直方图?有一些量化涉及到 减少垃圾箱数量?

我想听听别人的想法。

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您将机器学习技术应用于此问题,您可能会获得一些好的结果。

例如,如果您想将图像中的每个像素标记为字段边框或不是字段边框,您可以尝试手工标记几个图像中的像素,计算一组要素(您目前只使用颜色)但我认为面向渐变也可能会给出一些好的结果)并将所有内容转储到支持向量机(SVM)中。

如果您熟悉C ++或Python,OpenCV提供了SVM和基于梯度的功能(描述符)的实现:

另外,Matlab还提供了训练SVM和计算梯度特征的代码。

答案 1 :(得分:0)

我不确定我是否完全理解你的优先事项 - 第三张图片对我来说非常好(比第四张要好得多)。我注意到第一个“S”的底部有一个间隙。

在任何情况下,如您所知,边界的位置并扫描这些像素,我建议为它们编制H,S和V的统计数据。对于S和V,我想你可以计算平均值和标准差。由于角度的环绕特性,色调很棘手,并且它可能是不确定的。您可以只量化并找到模式(或窗口加权模式)。你可以对盒子的非白色内容做同样的事情,这样你就可以量化笔划与盒子像素的性质。要缩小您的分布,您可以丢弃任何超出x SD的像素作为异常值并重新计算平均值和SD。从那时起,您可以简单地根据它落在哪个概率分布内对像素进行分类。

对此的优化包括:

  • 忽略H分量以获得低饱和度。
  • 如果不确定,如果靠近已知的边境位置则偏向边界。
  • 如果不确定的话,如果有相邻的像素已被分类为笔划,则运行第二次偏向笔划。