从两个图像中选择OCR的最佳输入

时间:2015-12-24 14:20:37

标签: c++ algorithm opencv computer-vision ocr

我正在构建一个预处理项目,以增强第2阶段将会发生的OCR结果,但是来自两个图像。

例如我有image1和image2,我们需要检查哪一个更适合在它上面进行OCR。

性能和处理时间非常重要(实时应用)。

以下是我需要讨论的一些案例:

案例1

enter image description here

两者都是" F"信,但第一个是可读的" F"在接下来会发生的OCR中,第二个根本不可读,所以对于情况1,我需要选择第一个" F"作为OCR的输入并忽略第二个图像。

情况2

enter image description here

两者都是" R"字母,并且两者都可以在OCR中读取,但是第一个在我们看到的第二个更好,所以我需要选择第一个" R"这里。

情形3:

enter image description here

它类似于第一种情况,其中" n"这里在OCR中是不可读的,所以我需要选择第一个" na"

CASE4

enter image description here

在第一个" na" " n"和" a"没有合并在一起,第二个是一个"轮廓"所以第一个" na"更好地成为OCR的输入。

我需要构建一个通用的快速算法,以检查图像的这一部分是否更适合OCR。

我尝试了以下内容:

1-方法1:检查图像是否模糊,选择更好的图像。

2-方法2:调用canny方法(或sobel)并选择更好的图像。

3-方法2:检查图像上的轮廓计数,并根据轮廓区域选择看起来更好的图像并计数。

有更好的建议吗?

3 个答案:

答案 0 :(得分:0)

问题是你如何得到这些块?

您如何确定这些是要比较的东西。

如果你知道预期字符的大小 - 所以你切掉那个大小的块 - 那么你也可以在比较中使用它。

答案 1 :(得分:0)

我认为这个问题有点过于宽泛。对于不同类型的缺陷,我建议采用不同的方法。

对于前两个案例,可能是第三个案例,我建议做一个小形态close并将结果与​​原始结果进行比较。使用close时,更好的字母会变少,因为它没有小孔和小点。比较度量可以像按像素方向的绝对差值一样简单。

答案 2 :(得分:-1)