计算机视觉 python 解图片数独题
关键词: sudoku 计算机视觉 数独 python
来源于于一张 视觉库 里的数独图片。 经过一段时间探索 终于识别出数字 并解出数独。转载请注明出处https://blog.csdn.net/onEMind8/article/details/79737564。
简单说,一张数独图片 利用opencv 在python 环境下快速解出数独题。
图一 sudoku.png
经过python 程序,快速识别出数字并解出数独:
图九 sudoku9.png
本着不重复造轮子的原则。具体实施方法及步骤如下:
第一步:先“扶正”
通过四点仿射变换,‘挖"出数独图。
通过matplotlib 的 ginput 获取4点 再通过 transform 转成如下图,
图二:sudoku2.png
上图变灰度
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
分析此图:在matplotlib在测试,灰度最大傎为156,最小值是 7 平均值为 102
左下角的背景像素 与右上角 字符像素值接近。用简单的二值 转换,左下总变成黑色一片,这不能解决问题。
用Sobel 梯度因子,也达不到效果。
后采用加亮,再二值化,若采用分成3X3格分别二值化可能效果更好。本文下面的做法采用前者。
简单加暴力,如战争般残酷的美丽。
图三 sudoku3.png
有此图就太好了
二值化 二值化这里的参数选150
ret,thresh=cv2.threshold(imgray,150,255,0)
获取边缘
image,cnts,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
绘制
cv2.drawContours(img,cnts, -1, (0,200,200), 1)
画外接矩形
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
图四 sudoku4.png
轮廓框的坐标 及大小,统统出来
图五 sudoku5.png
在此打住,因加亮,右上字符损失较大
把此坐标套回图二 剜出原字符,二值分割
图六 sudoku6.png
为字符的识别奠定了基础。
下面采用knn 识别出 字符
图七 sudoku7.png
再采用目前较好的数独解法,解出数独。
图八 sudoku8.png
版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/onEMind8/article/details/79737564
计算机视觉 python 解图片数独题相关推荐
- 大学python选择题题库及答案_大学慕课用Python玩转数据题库及答案
大学慕课用Python玩转数据题库及答案 更多相关问题 (19分)电解原理在化学工业中有广泛应用.右图表示一个电解池,装有电解液c :A.B是两块电极板,通过导线与直流 用铂电极电解CuCl2与CuS ...
- python零基础实例-零基础学习Python开发练习100题实例(1)
零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2864浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...
- python基础代码事例-零基础学习Python开发练习100题实例(2)
零基础学习Python开发练习100题实例(2) 2018-02-26 13:11:39 1934浏览 11.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个 ...
- python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号
智慧树_大数据分析的python基础_搜题公众号 更多相关问题 社会公众可以查阅烟草专卖行政主管部门的监督检查记录.() 公民.法人或者其他组织不得利用自动售货机销售烟草制品.() 烟草广告中不得有下 ...
- 第十二届蓝桥杯青少年python组 第1-3题 C++实现
蓝桥杯STEMA测评--Python真题讲解1 蓝桥杯STEMA测评--Python真题讲解1_哔哩哔哩_bilibili 蓝桥杯STEMA测评--Python真题讲解2 蓝桥杯STEMA测评--Py ...
- python单选题库答案_大学慕课2020用Python玩转数据题库及答案
大学慕课2020用Python玩转数据题库及答案 更多相关问题 [单选] 补偿滑轮组中动滑轮槽偏转角度不大于(). [单选] 30型杵环杆长度是(). [单选] 上下行分段绝缘器的空气间隙应达到()及 ...
- 数独题的生成与解决方法
数独题的生成与解决方法 参考文章: (1)数独题的生成与解决方法 (2)https://www.cnblogs.com/trav/p/10197907.html (3)https://www.code ...
- python入门经典100题-零基础学习Python开发练习100题实例(1)
零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...
- 生物信息学算法之Python实现|Rosalind刷题笔记:002 中心法则:转录
我在生物信息学:全景一文中,阐述了生物信息学的应用领域非常广泛.但是有一点是很关键的,就是细胞内的生命活动都遵从中心法则,生物信息学很多时候就是在中心法则上做文章: 分子生物学中心法则:DNA --& ...
最新文章
- eclipse常用以及实用的快捷键
- javax线程池超时结束_没有Javax的Jakarta EE:这次世界也不会结束
- 机器学习java_Java机器学习,第2部分
- LeetCode 1733. 需要教语言的最少人数(哈希+枚举)
- word如何设置长宽高_word怎么设计表格高和宽
- 通常情况下的中国剩余定理
- 教你直白的理解贝塞尔曲线???
- xp 优化 转自天涯
- 通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)-大壮他哥
- MFC 的几个常用函数,用来计算文件大小,下载速度,转换时间的
- 《SQL必知必会阅读思维导图》PART1
- eclipse j2me 连接 KEmulator模拟器
- 错误报告函数:strerror和perror
- 单片机控制舵机及步进电机
- CHD+CM-1 安装
- Oracle针对EMP表的练习题(很有用,值得收藏)
- pg数据库自动备份记录
- 网易云音乐歌单或歌曲封面提取
- BUU-ACM国庆新人欢乐赛题解
- abp项目怎样发布到服务器,ABP 网站发布