【发布时间】:2020-12-19 13:27:07
【问题描述】:
我正在开发一个数独求解器,它从摄像机(笔记本电脑)获取输入并对其进行处理,将数独图像解析为列表列表,对其进行求解,然后将解决方案投射回工作表上。
我现在需要从图像中识别每个数字。我正在使用 MNIST 数据集来训练我的模型,该模型期望每个输入图像的形状为 (28, 28, 1),我能够成功定位并提取每个数字,但对数字执行任何类型的阈值会导致数字周围有很多噪音,最终导致我的模型错误分类。
有什么方法可以去除白噪声,只从正方形中提取数字,然后将其输入到 Keras 模型中。
我认为这可以通过使用cv2.connectedComponentsWithStats 通过提取最大的连通分量来实现,但我不知道该方法是如何工作的(以及它期望的参数或方法的输出),我找不到很好的解释如何使用它。
如果除了使用cv2.connectedComponentsWithStats 之外还有其他方法可以产生更好的结果,请提出建议,如果没有,请解释cv2.connectedComponentsWithStats 方法的工作原理,或者请指出一个可以帮助我理解它的好资源以及如何将它用于我的具体情况。
PS。如果您认为 MNIST 不是此任务的好数据集,请说明原因以及任何其他可能实现数字识别任务的数据集。
【问题讨论】:
-
你应该在阈值之前减少噪音,这总是更容易的选择。
标签: python image-processing keras opencv3.0 opencv-python