python - 使用枕头识别数独网格中的数字
问题描述
我正在制作一个数独求解器,我希望能够从数独网格中识别数字。我正在使用枕头的裁剪工具来裁剪正方形,然后查看它们是否与任何数字的 png 匹配。但是我用来裁剪正方形的功能并不一致。
我尝试首先调整图像大小,使所有正方形大小相同,然后根据行和列输入进行裁剪,然后乘以图像大小的九分之一。但这最终包括了使图像不同的不必要的线条,所以我缩小了裁剪的大小。我尝试了许多不同的偏移量,但没有一个会起作用。
Sudoku = Image.open('image.png')
w,h = Sudoku.size
new_w = w//9*9
new_h = h//9*9
Sudoku = Sudoku.resize((new_w,new_h))
def get_square(r,c,cutoff):
square_size = Sudoku.size[0]/9
Top = r*square_size+cutoff
Left = c*square_size+cutoff
Bottom = (r+1)*square_size-cutoff
Right = (c+1)*square_size-cutoff
tup = (Left,Top,Right,Bottom)
return Sudoku.crop(tup)
我希望正方形能够正常显示,并且每个正方形的数字总是出现在同一个地方。相反,当我将一个数字的图像保存在一个正方形中,然后将其与来自不同正方形的相同数字进行比较时,这些数字被移动而不是排列。有任何想法吗?
解决方案
推荐阅读
- react-native - React Native 教程/参考项目(演示)
- vb.net - 如果唯一的变化是新行,有没有办法阻止 myDataSet.HasChanges() 返回 true?
- java - 从 Postgres 数据库触发器调用 Java 应用程序
- java - JFrame等待用户输入
- c - 括号中的声明符
- javascript - 如何用 JavaScript 制作简单的点击游戏?
- mfc - 重新计算动态布局属性
- chmod - 将目录中的文件恢复为文件
- bash - 执行 bash 命令有效,但在 crontab 上无效
- python-3.x - 我们如何从之前保存的 Keras 模型中绘制准确率和损失图?