2016-08-02 73 views
0

我正在使用opencv进行光学字符识别项目。我已经在正常的位数上成功实现了ocr。但是在实时情况下,我得到了不想要的噪音问题digits.original图像如何去除图像中的数字之间的不必要的噪音

我已经转换为灰度和施加阈值,则它涉及这样

如果我申请轮廓检测,然后我将得到那些黑色嵌段I also.How能够有效地消除数字之间的块。我对OCR没有任何问题,我只是想删除不需要的噪音并旋转图像。谢谢。

旋转并从图像中删除黑色斑点后,这是我取得的进展,我如何删除由于阴影而附着在第一位数字的块。

我遇到了ocr的问题。第一个和最后两位数字不能正确识别。如何提高ocr的效率。在用系统对那些数字进行实时训练后,我得到了正确的结果。

最终OCR图片:final ocr image

回答

3

去除黑条无几何形状的先验知识,我纯斑点分析意味着,几乎是不可能的。由于底部强烈的阴影,也不可能避免他们与数字接触。

我建议尽最大努力找到那些黑色条纹,这是斑点垂直范围最大的地方。也许还可以通过对列进行平均(6个强本地最小值)来获得它们。

enter image description here

当你水平位于这条,你可以通过填写白色矩形删除它们原来的形象。您也可以将它们垂直放置在各自的切片中,并使用此信息执行去扭曲,然后进行擦除。您还可以预测最左侧和最右侧空隙的位置。

这是一种结果,你可以实现:

enter image description here

enter image description here

+0

感谢ü先生的答复和我得到乌尔黑pixels.but的垂直计数检测斑点想法我不能完美地删除blob.u可以参考我post.first中的更新后的图像1)二进制阈值2)getRotation2Dmatrix和wrapAffine函数进行校验3)我做了一个小代码来检测blob 4)替换那些有白色空间的斑点。我认为最后一步工作不正常。 –

+0

如果您使用opencv或matlab.please共享您的实施步骤。 –

+0

@PraveenGadiyaram:我没有,我用我自己的软件。你的删除条纹太窄,为什么你不放大它们? –