0、实验思路
(1)利用cv自带的图片digits.png,完成训练、手动切割出来的数字识别(本文完成);
(2)让上面的训练集合识别自己手写、经ps切割的单个数字图片;
(3)识别自己写的一行数字。
1、参考源
作者:十月ku
网址:OpenCVSharp4 识别物体系列之学习对象分类 - 简书
2、界面和思路
创建4个按钮,分别为切割并训练、识别内置、识别手写、识别一行手写
3、功能实现
(1)切割并训练,代码如下:
Mat img0 = Cv2.ImRead("digits.png", ImreadModes.Grayscale);
Mat tTrainData = new Mat();
Mat tTrainLabel = new Mat();
int step = 20;
//原图为1000*2000,每行2000/20=100个,共50行
int rowsCount = img0.Rows / step;
int colsCount = 90; //训练90,并把最后几个拿出来
for (int i = 0; i < rowsCount; i++)//50行
{
int offsetRow = i * step; //行上的偏移量
for (int j = 0; j < colsCount; j++) //列数

该博客介绍了使用OpenCV进行手写数字识别的过程,包括从digits.png图像中切割训练数据,通过KNN算法进行训练,并尝试识别手写数字。作者还探讨了KNN的局限性,最终转向其他机器学习方法。

2307

被折叠的 条评论
为什么被折叠?



