OpenCV玩九宫格数独:预告篇

九宫格

数独源于18世纪的瑞士,又称九宫格,有九行、久列和九宫。玩家需要在九宫格中,根据已知的数字,利用逻辑和推理能力,填出所有的空格中应有的数字。填的时候要求每行、每列和每宫都要不重复地包含数字0-9。每行、每列和每宫中1-9都必须出现且只能出现一次,故称之为数独。

数独游戏考察的是解题者的观察能力和逻辑推理能力,虽然规则很简单,但是数字的排列方式却是包含千变万化,是一种锻炼思维的绝佳方式。有时候数独不光有数字的变化,还有颜色的变化,更难但趣味也更多。

在刚刚接触机器视觉的时候,我就想着用机器视觉来解数独。当时也做了一些尝试。但是当时只是做到了提取每一个九宫格和数字,由于当时初学能力有限,就搁置了。最近重新拾起,不是用C++,而是用Python,终于完整地把可以完整地用九宫格了。

今天这篇文章只能说是预告,因为最近空闲时间有限,而这个项目又不是简简单单就能说完的,所以我且利用空闲时间慢慢写,君且慢慢看。

流程

大致的流程是这样的

  • 九宫格数字提取
  • 数字识别
  • 数据收集和处理
  • kNN数字识别
  • 数独生成和求解

效果预览

1.数字提取

数字提取,就是在一张数独图片中提取出已知的数字

2.数字识别

数字识别需要训练kNN数字识别模型,就需要收集数据,进行数据处理之后训练模型。最终可以正确地识别九宫格中的数字。由于训练样本有限,所以现有模型也许只能完美的识别上图所示的九宫格。

3.求解数独并展示结果

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏一个会写诗的程序员的博客

计算机中的数学【集合论】现代数学的共同基础

现代数学有数不清的分支,但是,它们都有一个共同的基础——集合论——因为 它,数学这个庞大的家族有个共同的语言。集合论中有一些最基本的概念:集合(set),关系(...

623
来自专栏小樱的经验随笔

Collaborative Filtering(协同过滤)算法详解

基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户...

3868
来自专栏程序员宝库

每个程序员都应该收藏的算法复杂度速查表

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O 复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时...

652
来自专栏CSDN技术头条

MIT牛人梳理脉络详解宏伟现代数据体系

在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进。 【为什么要深入数学的世界】 作为计算机的学生,我没有任...

18310
来自专栏大数据挖掘DT机器学习

利用 Python、SciKit 和文本分类来构建客户行为描述模型

了解如何根据已购买产品中描述的文本属性来构建客户行为描述模型。SciKit 是一个强大的基于 Python 的机器学习包,可用于模型构造和评估,您可以利用它...

2845
来自专栏机器学习算法与Python学习

搞算法的我们,不知道这些算法怎么行

分享 动一动手指,分享给向我们一样需要的人 这是一篇有趣的文章,George Dvorsky试图解释算法之于当今世界的重要性,以及哪些算法对人类文明最为重要,如...

2608
来自专栏CDA数据分析师

干货 | 怎样用数据分析找对象?

写在前面 在工作中,经常利用多个数据指标对整体进行综合评价,需要把多个数据压缩成一个综合指标,这就是多指标综合评价方法。 耐心学完本期内容,足够装X一整年。 专...

2038
来自专栏AI科技大本营的专栏

AI 技术讲座精选:深度拼写——重新认识21世纪的拼写校正程序

本文是一篇关于工程学的内容,讲述的是当前较先进的技术——拼写校对程序。这项技术的用处就是让低级工程师使用起来得心应手。 许多年前,我根据Peter Norvig...

2678
来自专栏take time, save time

编程一样可以很带感--1+1不一定等于“2”

刚玩了两把flash小游戏,我也不知道为什么我从小就喜欢玩这个东西,想当初我上大学选软件的目的就是为了学会做flash,那时目的单纯吧?哈哈,初中的时候看的...

3576
来自专栏龙行天下CSIEM

科学瞎想系列之七十三 电机的体积与基本参数的关系

【图片来自网络如有侵权敬请邮箱联系。欢迎原文转发到朋友圈,未经许可的媒体平台谢绝转载,如需转载或合作请邮件联系。联系邮箱laolicsiem@126.com】...

2573

扫码关注云+社区