我正在尝试提取放置在拼字游戏板上的瓷砖(字母)。目标是识别/读取板上存在的所有可能的单词。
理想情况下,我想找到拼字游戏板的四个角,并应用透视变换,以便进一步处理。
我使用的算法如下 -
找到合成图像的边界点(轮廓),然后应用Contour approximation获取角点,然后应用透视变换
这种方法适用于这些图像。但是,正如您所看到的,许多方板都有一个底座,它在顶部和底部弯曲。有时,基地是一个大圆形板。有了这些图像,我的方法就失败了。示例图像和输出 -
董事会与循环基地:
使用上述方法找到的分数:
我可以发布更多这样有问题的图片,但是这张图片可以让您了解我正在处理的问题。我的问题是 -
当图像中还出现圆形板时,如何找到矩形板?
我想说明的一些观点 -
我尝试使用霍夫线来检测图像中的线条,找到最大的垂直线,然后找到它们的交叉点以检测角点。不幸的是,由于瓷砖,所有线条似乎都被扭曲/断开,因此我的尝试失败了。
我还尝试将轮廓近似应用于图像中的所有轮廓(我假设大矩形也是轮廓),但这种方法也失败了。
我已经在openCV-python中实现了解决方案。由于这种方法在这里很重要,问题变得有点太长,我没有发布相关的代码。
如果需要,我愿意分享更多这样有问题的图片。 谢谢!
EDIT1 @Silencer的答案对我识别图像中的字母非常有帮助,但我想准确地找到图像中单词的位置。因此,我觉得识别行和列是必要的,只有当透视变换应用于电路板时,我才能做到这一点。
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为@silencer已经提供了非常有前途的解决方案。
但是要执行透视变换,正如您所提到的那样,您已经尝试使用霍夫线来查找最大的矩形但是因为存在瓷砖而失败了。
鉴于你有大图像数据集可能超过1000个图像,你也可以尝试基于深度学习的方法,你可以训练一个模型与图像作为输入和相应的矩形边界点坐标作为输出。