我正在尝试从图像中提取文本。文本始终为白色,但背景可以变化,也可以为白色,仅考虑像素颜色时会产生以下输出:
如您所见,白色背景会“吃掉”它周围的字母,尤其是第一个“ G”和第二个最后一个“ go”的情况。
现在我想解决这个问题的想法是考虑文本的黑色阴影,毕竟这似乎也是我们人类仍然可以阅读“ G”的原因。但是,我不知道该怎么办,我也找不到在线资源。
到目前为止,这是我尝试过的操作:由于阴影位于右下角,因此我检查向下或向右的三个像素中是否有黑色像素。这样可以得到以下结果:
已经比第一个输出要好,但是仍然存在许多误报,这在人眼看来似乎很明显:
“ G”下方的某些像素保持白色(在下图中以红色突出显示),因为它们的右侧有黑色像素。该算法将黑色像素视为阴影,即使它们实际上是“ G”的阴影。
如何改进算法,使其知道阴影属于上方像素(“ G”)而不属于左侧像素(红色像素)?
我首先想到的是,“ G”的阴影看起来比水平更垂直,因此很可能是某物在上方而不是侧面的阴影。
有什么想法吗?
P.S .:我不是在要求使用特定语言的现成解决方案,而是在寻求解决问题的一般方法。只要我朝着正确的方向发展,我就可以自己在语言中实现该方法。 :)
编辑
这是原始图片: