鼠标事件
利用鼠标写出的数字也和手写数字有着粗细不匀的相同点,并且测试更简单,所以先试用鼠标事件对识别结果进行测试。
static void on_Mouse(int event, int x, int y, int flag, void*)
{
if (event == EVENT_LBUTTONDOWN) //当鼠标左键按下,获取该点坐标
{
prePoint = Point(x, y);
}
//当鼠标左键保持按下标志,且鼠标移动
else if (event == EVENT_MOUSEMOVE && (flag & EVENT_FLAG_LBUTTON))
{
Point nowPoint(x, y);
line(digit, nowPoint, prePoint, Scalar(255), 2, 8, 0);
prePoint = nowPoint; //将鼠标的当前点作为上个点位,以开始下一个线段区域的绘制
imshow(“digit”, digit); //在窗口更新目标图像
}
//当鼠标右键按下时
else if (event == EVENT_RBUTTONDOWN)
{
imshow(“digit”, canvas);
digit = canvas.clone();
}
}