我正在编写有趣的应用程序,我希望从跑步者T恤中获取数字。我正在玩AForge.NET和emguCV以获得理想的结果,我认为我非常接近解决我的问题,但我仍然想从更有经验的用户那里得到意见。 首先我有这个图像:
之后,我将它应用于最大对比度和一些闪电,我得到了这个结果:
接下来,我将图像二值化并获得最终结果: [^]
接下来,我应用一些基本的过滤器来清除小blob和非常大的blob。接下来,我尝试找到高度为>宽度的blob,之后我尝试找到相似的blob大小和形状,它们是彼此相邻的。 这是我的方法,在大多数情况下适合我。作为补充,我创建了可能被认为是字母的可能blob的直方图。这意味着我在该矩形中寻找2种主色。如果两种主色是黑色(ish)或白色(ish),我知道它是跑步者衬衫上的数字。 我想知道的是,你会采取什么不同的方法吗?像混合通道一样,转换为HSV空间并可能过滤黑色? 我的整个想法是获得那些不是数字的少量blob的数字。 我会很感激任何建议。 评论和想法很好,如果你想编写代码请做。 谢谢......
答案 0 :(得分:1)
您需要仔细考虑为什么要执行这些步骤。你在做什么似乎有点随机。它可能适用于一个图像但不适用于其他图像。我的建议:
答案 1 :(得分:0)
查看图像的特征,您可能首先检测正方形,因为文本处于白色块中。不确定aforge是否可以检测到正方形,但其他库可能会这样做。
答案 2 :(得分:0)
很好的问题,有很多方法可以做到这一点。 我建议你阅读:Image Processing: Algorithm Improvement for 'Coca-Cola Can' Recognition
好的,你的文字,我想我会先找到白色方块 接下来使用一些OCR来检测数字(openCV)或训练你自己的神经网络。或者也许对每个黑色数字(可能在其上下区域)进行评级,这样就可以区分6和9。