matlab ocr(),关于图像处理:OCR应用程序帮助-Matlab

我真的需要你的帮助,我很绝望。

我正在尝试构建OCR应用程序,但遇到了一些我无法单独解决的问题。

现在,我将图像切割成板状并进行一些过滤以减少噪声。

例如,这是从图像上切割并过滤后的板:

5a213e0cc498dee8e1e18ed7d0ea0a7b.png

现在因为板是倾斜的,并且仍然有噪音(如数字9和3上方),所以识别过程(使用corr2)给了我错误的数字。

例如:

b969368be415672941123219c2519410.png

如您所见,唯一的问题是数字9和3(在左侧)的噪音令人不安。

我曾想过要拉伸图像,以使每个数字都适合所有正方形(顶部没有黑线),但是我找不到任何方法可以适用于所有图像。

编辑:这是来自corr2函数的结果,我用红色标记了数字9和3的结果。

b864be895efe6d65755774ba8ab928d2.png

请给我一个想法或可行的解决方案...

任何帮助将不胜感激。

只是提示,对于这个问题,卷积并不是一种特别健壮或有效的方法。 您应该研究机器学习主题,例如神经网络或支持向量机。 这里有很多相关信息:stackoverflow.com/questions/850717/

考虑模糊训练图像(假设第二行是训练模板),以使数字笔划的暗度和粗细与您的输入相似。 至于第一个数字(9误认为1),您确定它的相关性是正的吗? 对于此特定输入,您能否列出其对所有模板的相关性(从0到9),以便很好地了解它与被误认的距离有多近? 最后,您还可以尝试线性判别分析或特征脸,这是一个更简单的起点。

@rwong Ive更新了问题,谢谢。

我认为您应该重新检查您的主图像...此外,看看这个答案stackoverflow.com/questions/4777677/,也许您可以获得一些启发

您可以预处理上一个问题中发布的图像:

2c802f380fc495d783343e7b32c9d13b.png

类似于:(Mathematica中的代码)

Dilation[

DeleteSmallComponents[

Pruning[

Thinning@

Binarize[

ColorSeparate[

ColorNegate@yourColorImage,"HSB"][[3]],

.92],

10],

30],

3]

结果:

64693f81bf31f22a3712f146f80b900e.png

现在,您的OCR应该顺利通过,就像这样:

a155c2299448c77570e8ff9749b8671e.png

编辑

您其他问题中发布的分步过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值