WebAssembly
为非前端开发者提供一种编写前端应用的能力,作者在本文中使用OpenCV
、Tensorflow
和使用Rust
编写的一个解答器。
通过下面的示意图,可以看到整个解答器的流程。
简而言之,上图中每一帧的步骤如下:
- 自适应阈值用于定位边缘,产生黑白图像;
- 边缘被近似于等高线,数独网格应该是最大的四边轮廓;
- 应用(反向)透视变换以将网格渲染为方形图像网格线被删除;
- 网格线被删除;
- 用卷积神经网络识别9x9网格中的数字;
- 填充的网络通过一个基于
Rust
的模块来解决; - 使用第3步中的透视变换将解决方案投影回图像;
- 解决方案被合并回原始图像。
想了解详细的解决方案,请查看原文。