从图像中去除线条失真

时间:2019-10-07 22:05:47

标签: python opencv

我正在创建OCR应用程序。它以扫描或照相打印的形式从装箱的部分中提取手写字符,并使用CNN进行读取。

它成功地使用轮廓提取了字符,但是在某些情况下,有些行也被当作轮廓读取。这些线条似乎是纯噪声或裁剪框部分时残留像素的结果。框状部分使用轮廓进行裁剪。

基本上,当使用高质量的扫描仪(以PNG格式保存)扫描表单时,它可以工作。否则,它将无法正常工作。我也需要用它来处理JPEG文件并废弃相机/扫描仪。

这更多是关于我可以在理论上使用哪些可能的技术的问题。

我想删除行或使代码忽略它。

我尝试过:

  • 以负数 n “填充”裁剪后的方框。因此,它会从每侧移除 n 个像素。但这不能太多使用,因为它也会占用字符的像素。
  • 使用形态学运算“关闭”。但是,修改内核大小几乎没有什么意义。
  • 实现盒形截面面积:字符面积之比。如果检索到的轮廓面积与盒装截面面积之比不在此范围内,则将其忽略。

是这样的:

1 3

4 5

灰色部分勾勒出检测到的轮廓。数字表示轮廓的索引,按检测到的顺序排序。注意,也检测到线带。我想摆脱这个。

除了干扰模型并使其徒劳无益地试图解释这些内容的线外,在某些情况下它似乎还会导致此错误:

ValueError: cannot reshape array of size 339 into shape (1,28,28,1)

也许我将同时开始对此进行调查。

0 个答案:

没有答案