怎么去识别图片上的一个数字?

tessocr 数字识别 数字特征识别_tessocr 数字识别


我已将代码上传,有需要的在以下地址下载:


1)

何去?

神经网络、模板匹配、特征点识别
,目前是最为主流的方法。
2)

何从?

基于LabVIEW的获取图片特征点,从而实现数字识别是一种简单的方法。下图为引用某位大佬的图片,可清晰观察一些特点。

tessocr 数字识别 数字特征识别_特征点_02

tessocr 数字识别 数字特征识别_自然语言处理_03


观察图可知,每个图片在可分X1、X2、Y,上都与图片有若干个交点,比如数字7,X1方向有1交点,X2方向有1交点、Y上有2个交点。所以同样方法可知其他数字的特征点:

tessocr 数字识别 数字特征识别_LabVIEW_04


其中2、3、5的特征数字一摸一样。所以多几组去判断,判断宇XI、X2的交点在左边还是右边,在左边为0,在右边为1,所以对应数字特征为:

2:(1,0)

3:(1,1)

5:(0,1)

到此,可以完全判断出根据特征点判断出数字。

3)

缘起

那么如何使用LabVIEW来识别呢?

首先咱们来看图片是怎么组成。

tessocr 数字识别 数字特征识别_自然语言处理_05


tessocr 数字识别 数字特征识别_tessocr 数字识别_06


这是一个格式为png的16*16的数字2的图片,可以隐约看到,中间红色部分为2。

所以,怎么去识别它呢:将图片二值化,大于7F7F7F的值为ffffff,小于的0,为下图:

tessocr 数字识别 数字特征识别_LabVIEW_07


对应的程序框图为:

tessocr 数字识别 数字特征识别_上传_08

然后,我们找到有用边界范围,只选择数值的有用范围,程序框图如下:

tessocr 数字识别 数字特征识别_LabVIEW_09


tessocr 数字识别 数字特征识别_LabVIEW_10

然后判断,x1、x2、y对应的特征点是多少数为多少,程序框图如下:

tessocr 数字识别 数字特征识别_tessocr 数字识别_11

在前面板我们得到,数字2的特征点分别为:

tessocr 数字识别 数字特征识别_上传_12


即为:(3,1,1,1,0)

带入我们写好的查找表:

tessocr 数字识别 数字特征识别_tessocr 数字识别_13


数字就在最终结果里出现了。